- 新增iOS原生模块AppStoreReviewManager,封装StoreKit评分请求 - 实现appStoreReviewService服务层,管理评分请求时间间隔(14天) - 在关键用户操作后触发评分请求:完成挑战、记录服药、记录体重、记录饮水 - 优化通知设置页面UI,改进设置项布局和视觉层次 - 调整用药卡片样式,优化状态显示和文字大小 - 新增配置检查脚本check-app-review-setup.sh - 修改喝水提醒默认状态为关闭 评分请求策略: - 仅iOS 14.0+支持 - 自动控制请求频率,避免过度打扰用户 - 延迟1秒执行,不阻塞主业务流程 - 所有评分请求均做错误处理,确保不影响核心功能
118 lines
3.6 KiB
Bash
118 lines
3.6 KiB
Bash
#!/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 "================================================" |