asc-submission-health by rudrankriyam/app-store-connect-cli-skills
npx skills add https://github.com/rudrankriyam/app-store-connect-cli-skills --skill asc-submission-health使用此技能可减少审核提交失败并监控状态。
asc builds info --build "BUILD_ID"
检查:
processingState 为 VALIDusesNonExemptEncryption - 如果为 true,则需要加密声明如果 usesNonExemptEncryption: true:
# 如果应用应豁免,请修补本地 plist 辅助文件,重新构建并重新上传
asc encryption declarations exempt-declare --plist "./Info.plist"
# 列出现有声明
asc encryption declarations list --app "APP_ID"
# 根据需要创建声明
asc encryption declarations create \
--app "APP_ID" \
--app-description "Uses standard HTTPS/TLS" \
--contains-proprietary-cryptography=false \
--contains-third-party-cryptography=true \
--available-on-french-store=true
# 分配给构建
asc encryption declarations assign-builds \
--id "DECLARATION_ID" \
--build "BUILD_ID"
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
如果应用确实仅使用豁免的传输加密,建议使用 asc encryption declarations exempt-declare --plist "./Info.plist" 并重新构建,而不是创建与二进制文件不匹配的声明。
所有 App Store 提交均需此项:
# 检查当前状态
asc apps content-rights view --app "APP_ID"
# 为大多数应用设置
asc apps content-rights edit --app "APP_ID" --uses-third-party-content=false
有效值:
DOES_NOT_USE_THIRD_PARTY_CONTENTUSES_THIRD_PARTY_CONTENT# 检查版本详情
asc versions view --version-id "VERSION_ID" --include-build
# 验证版权已设置
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"
# 列出版本本地化
asc localizations list --version "VERSION_ID"
# 检查必填字段:description, keywords, whatsNew, supportUrl
每个地区都需要目标平台的屏幕截图。
# 列出应用信息 ID(如果存在多个)
asc apps info list --app "APP_ID"
# 检查隐私政策 URL
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID"
asc 可以警告应用隐私准备情况,但公共的 App Store Connect API 无法验证应用隐私是否已完全发布。在最终提交前:
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc validate --app "APP_ID" --version "1.2.3" --platform IOS
在此技能中进行顶层准备情况检查时,建议使用版本字符串形式,以保持与 asc submit preflight 一致。本指南后面的底层命令在 API 要求的地方仍使用 VERSION_ID。
如果任一命令报告应用隐私咨询,则公共 API 无法验证发布状态。如果您依赖这些端点,请使用 Web 会话隐私工作流:
asc web privacy pull --app "APP_ID" --out "./privacy.json"
asc web privacy plan --app "APP_ID" --file "./privacy.json"
asc web privacy apply --app "APP_ID" --file "./privacy.json"
asc web privacy publish --app "APP_ID" --confirm
如果您不想使用实验性的 asc web privacy ... 命令,请在 App Store Connect 中手动确认应用隐私:
https://appstoreconnect.apple.com/apps/APP_ID/appPrivacy
如果应用销售订阅或应用内购买,请在提交前单独验证:
asc validate iap --app "APP_ID" --output table
asc validate subscriptions --app "APP_ID" --output table
在 0.45.3+ 版本中,asc validate subscriptions 将 MISSING_METADATA 扩展为每个订阅的诊断矩阵。使用它来识别缺失的审核屏幕截图、促销图片、定价或可用性覆盖缺口、优惠准备情况以及应用/构建证据,然后重试提交或首次审核附加。
当您需要机器可读格式的精确地区缺口时,请使用 --output json --pretty。
# 创建提交
asc review submissions-create --app "APP_ID" --platform IOS
# 将版本添加到提交
asc review items-add \
--submission "SUBMISSION_ID" \
--item-type appStoreVersions \
--item-id "VERSION_ID"
# 提交审核
asc review submissions-submit --id "SUBMISSION_ID" --confirm
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc submit create --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm
当存在多个平台时,请使用 --platform。
# 检查提交状态
asc submit status --id "SUBMISSION_ID"
asc submit status --version-id "VERSION_ID"
# 列出所有提交
asc review submissions-list --app "APP_ID" --paginate
# 取消提交
asc submit cancel --id "SUBMISSION_ID" --confirm
# 或通过审核 API
asc review submissions-cancel --id "SUBMISSION_ID" --confirm
修复问题,然后重新提交。
检查:
构建的 usesNonExemptEncryption: true。请执行以下操作之一:
ITSAppUsesNonExemptEncryption = NO 后重新构建使用 --app-info 标志并指定正确的应用信息 ID:
asc apps info list --app "APP_ID"
asc submit create 会自动使用新的 reviewSubmissions API。asc submit preflight 可能返回非阻塞性咨询;请在提交前查看。asc apps content-rights view/edit 而非临时应用 JSON 检查。MISSING_METADATA 情况,asc validate subscriptions 现在提供了更丰富的每个订阅诊断信息。asc web privacy pull|plan|apply|publish 是应用隐私的 CLI 路径。--output table。--platform MAC_OS。每周安装量
1.2K
代码库
GitHub 星标数
588
首次出现
2026年1月28日
安全审计
安装于
codex1.2K
opencode1.2K
gemini-cli1.2K
github-copilot1.1K
kimi-cli1.1K
amp1.1K
Use this skill to reduce review submission failures and monitor status.
asc builds info --build "BUILD_ID"
Check:
processingState is VALIDusesNonExemptEncryption - if true, requires encryption declarationIf usesNonExemptEncryption: true:
# If the app should be exempt, patch the local plist helper, rebuild, and re-upload
asc encryption declarations exempt-declare --plist "./Info.plist"
# List existing declarations
asc encryption declarations list --app "APP_ID"
# Create declaration if needed
asc encryption declarations create \
--app "APP_ID" \
--app-description "Uses standard HTTPS/TLS" \
--contains-proprietary-cryptography=false \
--contains-third-party-cryptography=true \
--available-on-french-store=true
# Assign to build
asc encryption declarations assign-builds \
--id "DECLARATION_ID" \
--build "BUILD_ID"
If the app truly uses only exempt transport encryption, prefer asc encryption declarations exempt-declare --plist "./Info.plist" and rebuild instead of creating a declaration that does not match the binary.
Required for all App Store submissions:
# Check current status
asc apps content-rights view --app "APP_ID"
# Set it for most apps
asc apps content-rights edit --app "APP_ID" --uses-third-party-content=false
Valid values:
DOES_NOT_USE_THIRD_PARTY_CONTENTUSES_THIRD_PARTY_CONTENT# Check version details
asc versions view --version-id "VERSION_ID" --include-build
# Verify copyright is set
asc versions update --version-id "VERSION_ID" --copyright "2026 Your Company"
# List version localizations
asc localizations list --version "VERSION_ID"
# Check required fields: description, keywords, whatsNew, supportUrl
Each locale needs screenshots for the target platform.
# List app info IDs (if multiple exist)
asc apps info list --app "APP_ID"
# Check privacy policy URL
asc localizations list --app "APP_ID" --type app-info --app-info "APP_INFO_ID"
asc can warn about App Privacy readiness, but the public App Store Connect API cannot verify whether App Privacy is fully published. Before final submission:
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc validate --app "APP_ID" --version "1.2.3" --platform IOS
Prefer the version string form for top-level readiness checks in this skill so it stays aligned with asc submit preflight. Lower-level commands later in this guide still use VERSION_ID where the API requires it.
If either command reports an App Privacy advisory, the public API cannot verify publish state. Use the web-session privacy workflow if you rely on those endpoints:
asc web privacy pull --app "APP_ID" --out "./privacy.json"
asc web privacy plan --app "APP_ID" --file "./privacy.json"
asc web privacy apply --app "APP_ID" --file "./privacy.json"
asc web privacy publish --app "APP_ID" --confirm
If you do not want to use the experimental asc web privacy ... commands, confirm App Privacy manually in App Store Connect:
https://appstoreconnect.apple.com/apps/APP_ID/appPrivacy
If the app sells subscriptions or in-app purchases, validate those separately before submit:
asc validate iap --app "APP_ID" --output table
asc validate subscriptions --app "APP_ID" --output table
In 0.45.3+, asc validate subscriptions expands MISSING_METADATA into a per-subscription diagnostics matrix. Use it to identify missing review screenshots, promotional images, pricing or availability coverage gaps, offer readiness, and app/build evidence before retrying submit or first-review attach.
Use --output json --pretty when you want exact territory gaps in machine-readable form.
# Create submission
asc review submissions-create --app "APP_ID" --platform IOS
# Add version to submission
asc review items-add \
--submission "SUBMISSION_ID" \
--item-type appStoreVersions \
--item-id "VERSION_ID"
# Submit for review
asc review submissions-submit --id "SUBMISSION_ID" --confirm
asc submit preflight --app "APP_ID" --version "1.2.3" --platform IOS
asc submit create --app "APP_ID" --version "1.2.3" --build "BUILD_ID" --confirm
Use --platform when multiple platforms exist.
# Check submission status
asc submit status --id "SUBMISSION_ID"
asc submit status --version-id "VERSION_ID"
# List all submissions
asc review submissions-list --app "APP_ID" --paginate
# Cancel submission
asc submit cancel --id "SUBMISSION_ID" --confirm
# Or via review API
asc review submissions-cancel --id "SUBMISSION_ID" --confirm
Fix issues, then re-submit.
Check:
The build has usesNonExemptEncryption: true. Either:
ITSAppUsesNonExemptEncryption = NO in Info.plistUse --app-info flag with the correct app info ID:
asc apps info list --app "APP_ID"
asc submit create uses the new reviewSubmissions API automatically.asc submit preflight can return non-blocking advisories; review them before submitting.asc apps content-rights view/edit over ad-hoc app JSON inspection.asc validate subscriptions now provides much richer per-subscription diagnostics for MISSING_METADATA cases.asc web privacy pull|plan|apply|publish is the CLI path for App Privacy.--output table when you want human-readable status.--platform MAC_OS.Weekly Installs
1.2K
Repository
GitHub Stars
588
First Seen
Jan 28, 2026
Security Audits
Gen Agent Trust HubPassSocketWarnSnykPass
Installed on
codex1.2K
opencode1.2K
gemini-cli1.2K
github-copilot1.1K
kimi-cli1.1K
amp1.1K
React 组合模式指南:Vercel 组件架构最佳实践,提升代码可维护性
102,200 周安装