关于 app-store-preflight-skills
用于在提交前检查 iOS 和 macOS 项目中的 App Store 常见拒审风险的 Agent 技能。它按应用类型提供检查清单、规则检查指引、报告格式及部分问题的自动修复建议。
主要功能
- 01按应用类型提供指南清单
- 02提供元数据与规则检查指引
- 03按严重程度整理预检报告
- 04针对部分问题提供修复建议
适用场景
- 01提交 App Store 前审查应用
- 02检查订阅和隐私要求
- 03发现元数据长度或链接问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ truongduy2611/ app-store-preflight-skills --skill app-store-preflight-skills安装后在 Claude Code 中输入/app-store-preflight-skills确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdLICENSEreferences/guidelines/README.mdreferences/guidelines/by-app-type/health_fitness.mdgames.mdkids.mdcrypto_finance.mdmacos.mdall_apps.mdai_apps.mdsocial_ugc.mdvpn.mdsubscription_iap.mdreferences/rules/design/minimum_functionality.mdhidden_features.mdsign_in_with_apple.mdreferences/rules/entitlements/unused_entitlements.mdreferences/rules/metadata/accurate_metadata.mdchina_storefront.mdapple_trademark.mdsubscription_metadata.mdreview_notes_new_submission.mdreview_notes_template.mdcompetitor_terms.mdreferences/rules/privacy/privacy_manifest.mdthird_party_ai_consent.mdunnecessary_data.mdreferences/rules/subscription/misleading_pricing.mdmissing_tos_pp.md详细介绍
App Store 预检技能
对你的 iOS/macOS 项目运行提交前检查,发现常见的 App Store 拒绝原因。
前置条件
- asc CLI — 通过 Homebrew 安装:
brew install asc(App-Store-Connect-CLI) - ASC CLI Skills — 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 |
| 订阅 / IAP | references/guidelines/by-app-type/subscription_iap.md |
| 社交 / UGC | 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 元数据:
# Pull canonical metadata JSON for the version you want to review
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 布局。
创意素材(产品页面页眉、搜索结果素材;指南 2.3.14)存储在 App Store Connect 的 Asset Library 中。如果你的 asc 版本不会拉取这些素材,请手动根据 2.3.14 进行检查。
如果你的元数据采用其他布局(例如 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:报告检查结果
使用以下模板生成摘要报告:
## Preflight Report
### ❌ Rejections Found (N)
- [GUIDELINE X.X.X] Description of issue
- File: path/to/offending/file
- Fix: What to do
### ⚠️ Warnings (N)
- [GUIDELINE X.X.X] Potential issue
### ✅ Passed (N)
- [Category] All checks passed
按严重程度排序:先列出拒绝项,再列出警告,最后列出通过项。
步骤 5:自动修复并验证
有些问题可以自动修复:
- 竞争对手相关词语 → 建议替换文本,移除竞争对手名称
- 元数据字符数限制 → 显示当前长度和最大长度
- 缺少链接 → 生成 ToS/PP 链接模板
应用任何自动修复后,重新运行受影响的检查,确认修复已解决问题。只有重新扫描通过后,才能标记为已解决。
对于需要人工处理的问题(截图、UI 重新设计),请提供明确的说明,但不要自动修复。
注意事项
- 中国区 Storefront — 被禁用的 AI 相关词语(ChatGPT、Gemini 等)会在所有地区设置中检查,而不仅仅是
zh-Hans。Apple 会检查中国区 Storefront 中显示的所有地区设置。 - 隐私清单 — 即使你的应用没有直接调用 Required Reason 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 描述和应用内订阅购买页面中都包含服务条款和隐私政策链接。缺少其中任意一处都会导致单独的拒审。
- 隐藏功能(2.5.19) — 可以使用功能标志,但它们能启用的每项功能都必须包含在送审版本中、可供审核人员访问,并在审核备注中说明。通过检查审核环境(沙盒收据、TestFlight)来控制功能属于诱导审核,可能导致开发者账户被终止。
- 第三方 AI(5.1.2(i)) — 通过自己的后端代理 AI 调用并不能让你免责:如果提示词或用户内容会发送给 OpenAI、Gemini、Anthropic 等服务商,应用必须在首次请求前显示注明服务商名称的同意页面。
- 通过 Apple 登录的中继域名 — 从 2026 年末起,新中继地址除使用
privaterelay.appleid.com外,也会使用private.icloud.com。对域名进行硬编码检查会导致新用户遇到问题。 - SDK 最低版本要求 — 自 2026 年 4 月 28 日起,上传的应用必须使用 iOS 26 SDK 或更高版本构建。旧版 Xcode 会导致上传失败,而非审核失败。
- macOS 权限 — Apple 会要求你说明每项临时例外权限(
com.apple.security.temporary-exception.*)的用途。请移除未在积极使用的权限。
添加新规则
在适当的 references/rules/ 子目录中创建一个 .md 文件:
# Rule: [Short Title]
- **Guideline**: [Apple Guideline Number]
- **Severity**: REJECTION | WARNING
- **Category**: metadata | subscription | privacy | design | entitlements
## What to Check
## How to Detect
## Resolution
## Example Rejection