feat(review): 集成iOS应用内评分功能

- 新增iOS原生模块AppStoreReviewManager,封装StoreKit评分请求
- 实现appStoreReviewService服务层,管理评分请求时间间隔(14天)
- 在关键用户操作后触发评分请求:完成挑战、记录服药、记录体重、记录饮水
- 优化通知设置页面UI,改进设置项布局和视觉层次
- 调整用药卡片样式,优化状态显示和文字大小
- 新增配置检查脚本check-app-review-setup.sh
- 修改喝水提醒默认状态为关闭

评分请求策略:
- 仅iOS 14.0+支持
- 自动控制请求频率,避免过度打扰用户
- 延迟1秒执行,不阻塞主业务流程
- 所有评分请求均做错误处理,确保不影响核心功能
This commit is contained in:
richarjiang
2025-11-24 10:06:18 +08:00
parent 8cbf6be50a
commit c1c9f22111
15 changed files with 823 additions and 335 deletions

View File

@@ -0,0 +1,118 @@
#!/bin/bash
# iOS 应用内评分功能配置检查脚本
# 使用方法: bash scripts/check-app-review-setup.sh
echo "================================================"
echo "iOS 应用内评分功能 - 配置检查"
echo "================================================"
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 检查计数
checks_passed=0
checks_failed=0
# 函数:检查文件存在
check_file() {
local file=$1
local description=$2
if [ -f "$file" ]; then
echo -e "${GREEN}${NC} $description"
echo " 路径: $file"
((checks_passed++))
return 0
else
echo -e "${RED}${NC} $description"
echo " 路径: $file (文件不存在)"
((checks_failed++))
return 1
fi
}
echo "步骤 1: 检查原生模块文件"
echo "-----------------------------------"
check_file "ios/OutLive/AppStoreReviewManager.swift" "Swift 实现文件"
check_file "ios/OutLive/AppStoreReviewManager.m" "Objective-C 桥接文件"
check_file "ios/OutLive/OutLive-Bridging-Header.h" "Bridging Header 文件"
echo ""
echo "步骤 2: 检查服务层文件"
echo "-----------------------------------"
check_file "services/appStoreReview.ts" "评分请求管理服务"
echo ""
echo "步骤 3: 检查 Redux 集成"
echo "-----------------------------------"
if check_file "store/challengesSlice.ts" "挑战 Slice 集成"; then
if grep -q "appStoreReviewService" "store/challengesSlice.ts"; then
echo -e " ${GREEN}${NC} 已集成应用评分服务"
else
echo -e " ${YELLOW}!${NC} 未检测到应用评分服务集成"
((checks_failed++))
fi
fi
if check_file "store/medicationsSlice.ts" "用药 Slice 集成"; then
if grep -q "appStoreReviewService" "store/medicationsSlice.ts"; then
echo -e " ${GREEN}${NC} 已集成应用评分服务"
else
echo -e " ${YELLOW}!${NC} 未检测到应用评分服务集成"
((checks_failed++))
fi
fi
echo ""
echo "步骤 4: 检查文档"
echo "-----------------------------------"
check_file "docs/app-store-review-implementation.md" "实现文档"
check_file "docs/app-store-review-xcode-setup.md" "Xcode 配置指南"
echo ""
# 总结
echo "================================================"
echo "检查总结"
echo "================================================"
echo -e "通过: ${GREEN}$checks_passed${NC}"
echo -e "失败: ${RED}$checks_failed${NC}"
echo ""
# 根据结果给出建议
if [ $checks_failed -eq 0 ]; then
echo -e "${GREEN}✓ 所有文件检查通过!${NC}"
echo ""
echo "下一步操作:"
echo "1. 打开 Xcode 项目:"
echo " cd ios && open OutLive.xcworkspace"
echo ""
echo "2. 在 Xcode 中添加原生模块文件(详见文档):"
echo " - AppStoreReviewManager.swift"
echo " - AppStoreReviewManager.m"
echo ""
echo "3. 清理并重新构建:"
echo " Product > Clean Build Folder (Shift+Cmd+K)"
echo " Product > Build (Cmd+B)"
echo ""
echo "4. 运行应用进行测试"
echo ""
echo "详细步骤请参考: docs/app-store-review-xcode-setup.md"
else
echo -e "${RED}✗ 检查未通过,请修复以上问题${NC}"
echo ""
echo "常见问题:"
echo "- 如果文件不存在,请确认文件是否被正确创建"
echo "- 如果集成检查失败,请检查代码是否正确导入和使用服务"
echo ""
echo "获取帮助:"
echo "- 查看实现文档: docs/app-store-review-implementation.md"
echo "- 查看配置指南: docs/app-store-review-xcode-setup.md"
fi
echo ""
echo "================================================"