SuperAPI AI 工具集

review-prompt

编程与开发

查看项目

更新于 10-16 08:08

技能介绍

用途:为 App Store 分发的应用生成评分提示基础设施,包含可配置触发条件、平台检测与合理的时机逻辑。当用户提出“添加评论提示”“请求评价”“App Store 评分”“提示评分”“StoreKit review”或“SKStoreReviewController”等需求时启用。

平台检测:iOS 应用始终适用;macOS 应用需检查 com.apple.application-identifier entitlement 或 Mac App Store 相关代码,不明确时应询问用户是否为 Mac App Store 分发。若非 App Store 分发,说明 StoreKit 评分仅适用于 App Store 应用,可改为生成应用内反馈表单。

生成前检查:识别平台与分发方式,搜索现有评分提示代码,定位 App 入口;如存在现有实现(如 requestReview、SKStoreReviewController、StoreKit、**/Review.swift),询问是替换还是增强时机逻辑。

配置项(通过 AskUserQuestion 询问):触发条件(会次数、安装天数、正向操作、功能使用次数)、最小阈值(首次提示前会话数默认 3、天数默认 3)、冷却期(提示间隔天数默认 60,Apple 每年最多 3 次)、是否包含调试模式。

生成内容:ReviewPromptManager.swift(核心逻辑与时机)、ReviewPromptCondition.swift(可配置条件)、ReviewPromptStorage.swift(持久化跟踪)。文件位置:有 Sources/ 则放 Sources/Reviews/,有 App/ 则放 App/Reviews/,否则放 Reviews/。macOS 需加入平台守卫,例如通过 Bundle.main.appStoreReceiptURL?.lastPathComponent != "sandboxReceipt" 判断是否在非 App Store 沙盒中运行并跳过。

集成方式:自动方式在 App 的 onAppear 中调用 ReviewPromptManager.shared.incrementSession(),在正向动作后调用 recordPositiveAction() 与 requestReviewIfAppropriate();也可在手动触发点调用。

Apple 指南:系统限制每 365 天最多 3 次提示;提示是否出现由系统决定,不保证显示;不得在负面体验后、首次启动时提示,不得打断用户工作流。

测试:设置 ReviewPromptManager.debugAlwaysShow = true,调用 ReviewPromptStorage.reset() 重置状态;模拟器中实际提示可能不显示。

替代方案:自定义 UI 或 macOS 直接分发时,可深链到 App Store 评分页:let appID = "YOUR_APP_ID",let url = URL(string: "https://apps.apple.com/app/id(appID)?action=write-review")!,macOS 用 NSWorkspace.shared.open(url),iOS 用 UIApplication.shared.open(url)。

参考资料:storekit-patterns.md(最佳实践与时机的策略)、templates/(模板文件)。