🚀 快速安装

复制以下命令并运行,立即安装此 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 拒绝模式。

先决条件

步骤 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。使用 UserDefaultsNSFileManager 的第三方 SDK(如 Firebase、Amplitude 等)会间接触发此要求。
  • asc 认证asc metadata pull 需要 App Store Connect 认证。请先运行 asc auth login,或设置 ASC_KEY_IDASC_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 原始英文文档,方便对照翻译。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。