🚀 快速安装
复制以下命令并运行,立即安装此 Skill:
npx skills add https://skills.sh/truongduy2611/app-store-preflight-skills/app-store-preflight-skills
💡 提示:需要 Node.js 和 NPM
App Store 预检技能
对您的 iOS/macOS 项目运行提交前检查,以发现常见的 App Store 拒绝模式。
先决条件
- asc CLI — 通过 Homebrew 安装:
brew install asc(App-Store-Connect-CLI) - ASC CLI 技能 — app-store-connect-cli-skills,用于了解
asc的使用模式 - jq — 可选,但规则文档中的一些 JSON 检查示例会用到
步骤 1:识别应用类型 → 加载检查清单
通过从 references/guidelines/by-app-type/ 加载相关的检查清单,来确定适用的指南。始终从 all_apps.md 开始,然后添加特定应用类型的检查清单:
| 应用类型 | 检查清单 |
|---|---|
| 所有应用 | references/guidelines/by-app-type/all_apps.md |
| 订阅 / 内购 | references/guidelines/by-app-type/subscription_iap.md |
| 社交 / 用户生成内容 | references/guidelines/by-app-type/social_ugc.md |
| 儿童类别 | references/guidelines/by-app-type/kids.md |
| 健康与健身 | references/guidelines/by-app-type/health_fitness.md |
| 游戏 | references/guidelines/by-app-type/games.md |
| macOS | references/guidelines/by-app-type/macos.md |
| AI / 生成式 AI | references/guidelines/by-app-type/ai_apps.md |
| 加密货币与金融 | references/guidelines/by-app-type/crypto_finance.md |
| VPN | references/guidelines/by-app-type/vpn.md |
完整指南索引:references/guidelines/README.md
步骤 2:拉取元数据以供检查
使用 asc CLI 拉取最新的 App Store 元数据:
# 拉取你要审查的版本的标准元数据 JSON
asc metadata pull --app "<APP_ID>" --version "<VERSION>" --dir ./metadata
asc metadata pull 会将应用信息文件写入 ./metadata/app-info/*.json,并将版本本地化文件写入 ./metadata/version/<VERSION>/*.json。
下面的大多数规则示例都假定使用 asc metadata pull 写入的标准 JSON 布局。如果您已经拥有其他布局的元数据(例如 fastlane metadata/),要么将文件路径示例适配到该结构,要么先拉取标准的 asc 布局。
步骤 3:运行拒绝规则检查
对于每个类别,从 references/rules/ 加载相关的规则文件并进行检查。每条规则包含:检查内容、检测方法、解决方案 和 拒绝示例。
| 类别 | 规则文件 |
|---|---|
| 元数据 | references/rules/metadata/*.md |
| 订阅 | references/rules/subscription/*.md |
| 隐私 | references/rules/privacy/*.md |
| 设计 | references/rules/design/*.md |
| 权限 | references/rules/entitlements/*.md |
步骤 4:报告发现
使用以下模板生成摘要报告:
## 预检报告
### ❌ 发现的拒绝项 (N)
- [GUIDELINE X.X.X] 问题描述
- 文件:path/to/offending/file
- 修复方法:需要做什么
### ⚠️ 警告 (N)
- [GUIDELINE X.X.X] 潜在问题
### ✅ 已通过 (N)
- [类别] 所有检查已通过
按严重程度排序:先列出拒绝项,然后是警告,最后是通过项。
步骤 5:自动修复 + 验证
一些问题可以自动修复:
- 竞品术语 → 建议替换文本,移除竞品名称
- 元数据字符限制 → 显示当前长度与最大长度
- 缺失链接 → 生成服务条款/隐私政策的模板 URL
应用任何自动修复后,重新运行受影响的检查 以确认修复解决了违规问题。只有重新扫描通过后,才能将问题标记为已解决。
对于需要人工介入的问题(截图、UI 重新设计),请提供清晰的说明,但不要自动修复。
注意事项
- 中国商店 — 禁止的 AI 术语(ChatGPT、Gemini 等)会在所有语言区域进行检查,而不仅仅是
zh-Hans。Apple 会检查在中国商店中可见的每个语言区域。 - 隐私清单 — 即使您的应用没有直接调用必需原因 API,也需要
PrivacyInfo.xcprivacy。使用UserDefaults或NSFileManager的第三方 SDK(如 Firebase、Amplitude 等)会间接触发此要求。 - asc 认证 —
asc metadata pull需要 App Store Connect 认证。请先运行asc auth login,或设置ASC_KEY_ID、ASC_ISSUER_ID,以及ASC_PRIVATE_KEY_PATH/ASC_PRIVATE_KEY/ASC_PRIVATE_KEY_B64之一。如果不确定asc正在使用什么,请运行asc auth doctor。 - 订阅元数据 — Apple 要求在 App Store 描述和应用内订阅购买界面中都包含服务条款/隐私政策链接。缺少任意一个都会导致单独的拒绝。
- macOS 权限 — Apple 会要求您说明每个临时例外权限(
com.apple.security.temporary-exception.*)的用途。移除您未主动使用的权限。
添加新规则
在适当的 references/rules/ 子目录中创建一个 .md 文件:
# 规则:[简短标题]
- **指南**:[Apple 指南编号]
- **严重程度**:REJECTION | WARNING
- **类别**:metadata | subscription | privacy | design | entitlements
## 检查内容
## 检测方法
## 解决方案
## 拒绝示例
📄 原始文档
完整文档(英文):
https://skills.sh/truongduy2611/app-store-preflight-skills/app-store-preflight-skills
💡 提示:点击上方链接查看 skills.sh 原始英文文档,方便对照翻译。

评论(0)