asc-release-flow

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Release flow (TestFlight and App Store)

发布流程(TestFlight与App Store)

Use this skill when you need to get a new build into TestFlight or submit to the App Store.
当你需要将新版本构建上传至TestFlight或提交至App Store时,可使用本技能。

Preconditions

前置条件

  • Ensure credentials are set (
    asc auth login
    or
    ASC_*
    env vars).
  • Use a new build number for each upload.
  • Prefer
    ASC_APP_ID
    or pass
    --app
    explicitly.
  • Build must have encryption compliance resolved (see asc-submission-health skill).
  • 确保已设置凭据(
    asc auth login
    ASC_*
    环境变量)。
  • 每次上传使用新的构建版本号。
  • 优先使用
    ASC_APP_ID
    或显式传递
    --app
    参数。
  • 构建版本必须已解决加密合规性问题(请参考asc-submission-health技能)。

iOS Release

iOS应用发布

Preferred end-to-end commands

推荐的端到端命令

  • TestFlight:
    • asc publish testflight --app <APP_ID> --ipa <PATH> --group <GROUP_ID>[,<GROUP_ID>]
    • Optional:
      --wait
      ,
      --notify
      ,
      --platform
      ,
      --poll-interval
      ,
      --timeout
  • App Store:
    • asc publish appstore --app <APP_ID> --ipa <PATH> --version <VERSION>
    • Optional:
      --wait
      ,
      --submit --confirm
      ,
      --platform
      ,
      --poll-interval
      ,
      --timeout
  • TestFlight分发:
    • asc publish testflight --app <APP_ID> --ipa <PATH> --group <GROUP_ID>[,<GROUP_ID>]
    • 可选参数:
      --wait
      ,
      --notify
      ,
      --platform
      ,
      --poll-interval
      ,
      --timeout
  • App Store提交:
    • asc publish appstore --app <APP_ID> --ipa <PATH> --version <VERSION>
    • 可选参数:
      --wait
      ,
      --submit --confirm
      ,
      --platform
      ,
      --poll-interval
      ,
      --timeout

Manual sequence (when you need more control)

手动流程(需要更多控制权时)

  1. Upload the build:
    • asc builds upload --app <APP_ID> --ipa <PATH>
  2. Find the build ID if needed:
    • asc builds latest --app <APP_ID> [--version <VERSION>] [--platform <PLATFORM>]
  3. TestFlight distribution:
    • asc builds add-groups --build <BUILD_ID> --group <GROUP_ID>[,<GROUP_ID>]
  4. App Store attach + submit:
    • asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID>
    • asc submit create --app <APP_ID> --version <VERSION> --build <BUILD_ID> --confirm
  5. Check or cancel submission:
    • asc submit status --id <SUBMISSION_ID>
      or
      --version-id <VERSION_ID>
    • asc submit cancel --id <SUBMISSION_ID> --confirm
  1. 上传构建版本:
    • asc builds upload --app <APP_ID> --ipa <PATH>
  2. 如需获取构建ID:
    • asc builds latest --app <APP_ID> [--version <VERSION>] [--platform <PLATFORM>]
  3. TestFlight分发:
    • asc builds add-groups --build <BUILD_ID> --group <GROUP_ID>[,<GROUP_ID>]
  4. App Store关联并提交:
    • asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID>
    • asc submit create --app <APP_ID> --version <VERSION> --build <BUILD_ID> --confirm
  5. 检查或取消提交:
    • asc submit status --id <SUBMISSION_ID>
      --version-id <VERSION_ID>
    • asc submit cancel --id <SUBMISSION_ID> --confirm

macOS Release

macOS应用发布

macOS apps are distributed as
.pkg
files, not
.ipa
.
macOS应用以
.pkg
文件格式分发,而非
.ipa

Build and Export

构建与导出

See
asc-xcode-build
skill for full build/archive/export workflow.
完整的构建/归档/导出工作流请参考
asc-xcode-build
技能。

Upload PKG

上传PKG文件

Use
xcrun altool
(asc doesn't yet support .pkg uploads directly):
bash
undefined
使用
xcrun altool
(asc目前不直接支持.pkg文件上传):
bash
undefined

Ensure API key is in ~/.appstoreconnect/private_keys/

确保API密钥已存放在~/.appstoreconnect/private_keys/

xcrun altool --upload-app
-f "/path/to/YourApp.pkg"
--type macos
--apiKey "$ASC_KEY_ID"
--apiIssuer "$ASC_ISSUER_ID"
undefined
xcrun altool --upload-app
-f "/path/to/YourApp.pkg"
--type macos
--apiKey "$ASC_KEY_ID"
--apiIssuer "$ASC_ISSUER_ID"
undefined

Attach and Submit

关联并提交

Same as iOS, but use
--platform MAC_OS
:
bash
undefined
与iOS流程一致,但需使用
--platform MAC_OS
参数:
bash
undefined

Wait for build to process

等待构建版本处理完成

asc builds list --app <APP_ID> --platform MAC_OS --limit 5
asc builds list --app <APP_ID> --platform MAC_OS --limit 5

Attach to version

关联至版本

asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID>
asc versions attach-build --version-id <VERSION_ID> --build <BUILD_ID>

Create submission

创建提交任务

asc review submissions-create --app <APP_ID> --platform MAC_OS
asc review submissions-create --app <APP_ID> --platform MAC_OS

Add version item

添加版本条目

asc review items-add
--submission <SUBMISSION_ID>
--item-type appStoreVersions
--item-id <VERSION_ID>
asc review items-add
--submission <SUBMISSION_ID>
--item-type appStoreVersions
--item-id <VERSION_ID>

Submit

提交

asc review submissions-submit --id <SUBMISSION_ID> --confirm
undefined
asc review submissions-submit --id <SUBMISSION_ID> --confirm
undefined

visionOS / tvOS Release

visionOS / tvOS应用发布

Same as iOS flow, use appropriate
--platform
:
  • VISION_OS
  • TV_OS
与iOS流程一致,使用对应的
--platform
参数:
  • VISION_OS
  • TV_OS

Multi-Platform Release

多平台发布

When releasing the same version across platforms:
  1. Upload each platform's build separately
  2. Create version for each platform if not exists
  3. Attach builds to respective versions
  4. Submit each platform separately (or together via reviewSubmissions API)
当同一版本需跨平台发布时:
  1. 分别上传各平台的构建版本
  2. 若版本不存在,为每个平台创建版本
  3. 将构建版本关联至对应平台的版本
  4. 分别提交各平台(或通过reviewSubmissions API批量提交)

Pre-submission Checklist

提交前检查清单

Before submitting, verify:
  • Build status is
    VALID
    (not processing)
  • Encryption compliance resolved
  • Content rights declaration set
  • Copyright field populated
  • All localizations complete
  • Screenshots present
See
asc-submission-health
skill for detailed preflight checks.
提交前请验证以下内容:
  • 构建版本状态为
    VALID
    (未处于处理中)
  • 加密合规性问题已解决
  • 内容权利声明已设置
  • 版权字段已填写
  • 所有本地化内容已完成
  • 截图已上传
详细的预检检查请参考
asc-submission-health
技能。

Notes

注意事项

  • Always use
    --help
    to verify flags for the exact command.
  • Use
    --output table
    /
    --output markdown
    for human-readable output; default is JSON.
  • macOS builds require
    ITSAppUsesNonExemptEncryption
    in Info.plist to avoid encryption issues.
  • 始终使用
    --help
    参数查看命令的具体可用选项。
  • 使用
    --output table
    /
    --output markdown
    参数获取人类可读的输出格式;默认输出为JSON格式。
  • macOS构建版本需在Info.plist中添加
    ITSAppUsesNonExemptEncryption
    字段以避免加密相关问题。