asc-builds-upload

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

asc Builds Upload

asc 构建包上传

Upload and distribute builds via App Store Connect. See workflow.md for the full end-to-end flow and error handling.
通过App Store Connect上传并分发构建包。完整的端到端流程及错误处理请查看workflow.md

Commands

命令列表

Upload a build

上传构建包

bash
asc builds upload \
  --app-id <APP_ID> \
  --file MyApp.ipa \
  --version 1.0.0 \
  --build-number 42 \
  [--platform ios|macos|tvos|visionos]  # auto-detected from extension
  [--wait]                               # poll until processing completes
Platform is auto-detected:
.pkg
macos
, everything else →
ios
.
bash
asc builds upload \
  --app-id <APP_ID> \
  --file MyApp.ipa \
  --version 1.0.0 \
  --build-number 42 \
  [--platform ios|macos|tvos|visionos]  # auto-detected from extension
  [--wait]                               # poll until processing completes
平台会自动检测:
.pkg
文件对应
macos
,其他文件默认对应
ios

Poll status

查询状态

bash
asc builds uploads get --upload-id <UPLOAD_ID>
asc builds uploads list --app-id <APP_ID>
asc builds uploads delete --upload-id <UPLOAD_ID>
bash
asc builds uploads get --upload-id <UPLOAD_ID>
asc builds uploads list --app-id <APP_ID>
asc builds uploads delete --upload-id <UPLOAD_ID>

TestFlight distribution

TestFlight 分发

bash
undefined
bash
undefined

Add build to a beta group

Add build to a beta group

asc builds add-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>
asc builds add-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>

Remove build from a beta group

Remove build from a beta group

asc builds remove-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>
asc builds remove-beta-group --build-id <BUILD_ID> --beta-group-id <GROUP_ID>

Set "What's New" notes (creates or updates the localization)

Set "What's New" notes (creates or updates the localization)

asc builds update-beta-notes
--build-id <BUILD_ID>
--locale en-US
--notes "Bug fixes and improvements."
undefined
asc builds update-beta-notes
--build-id <BUILD_ID>
--locale en-US
--notes "Bug fixes and improvements."
undefined

Link build to version

将构建包关联至版本

bash
asc versions set-build --version-id <VERSION_ID> --build-id <BUILD_ID>
Required before submitting a version for App Store review.
bash
asc versions set-build --version-id <VERSION_ID> --build-id <BUILD_ID>
这是提交版本至App Store审核前的必要步骤。

Resolve App ID

获取App ID

See project-context.md — check
.asc/project.json
before asking the user or running
asc apps list
.
请查看project-context.md — 在询问用户或执行
asc apps list
前,先检查
.asc/project.json
文件。

Typical Workflow

典型工作流

bash
APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')
bash
APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')

If empty: ask user or run
asc apps list | jq -r '.data[0].id'

If empty: ask user or run
asc apps list | jq -r '.data[0].id'

1. Upload and wait

1. Upload and wait

asc builds upload --app-id "$APP_ID" --file MyApp.ipa
--version 1.2.0 --build-number 55 --wait
asc builds upload --app-id "$APP_ID" --file MyApp.ipa
--version 1.2.0 --build-number 55 --wait

2. Get the processed build ID

2. Get the processed build ID

BUILD_ID=$(asc builds list --app-id $APP_ID | jq -r '.data[0].id')
BUILD_ID=$(asc builds list --app-id $APP_ID | jq -r '.data[0].id')

3. Distribute to beta group

3. Distribute to beta group

asc builds add-beta-group --build-id $BUILD_ID --beta-group-id $GROUP_ID
asc builds add-beta-group --build-id $BUILD_ID --beta-group-id $GROUP_ID

4. Set notes

4. Set notes

asc builds update-beta-notes --build-id $BUILD_ID --locale en-US --notes "..."
asc builds update-beta-notes --build-id $BUILD_ID --locale en-US --notes "..."

5. Link to version and submit

5. Link to version and submit

asc versions set-build --version-id $VERSION_ID --build-id $BUILD_ID asc versions submit --version-id $VERSION_ID
undefined
asc versions set-build --version-id $VERSION_ID --build-id $BUILD_ID asc versions submit --version-id $VERSION_ID
undefined

CAEOAS Affordances

CAEOAS 便捷操作

Upload responses include
affordances
with ready-to-run follow-up commands:
json
{
  "data": [{
    "affordances": {
      "checkStatus": "asc builds uploads get --upload-id abc123",
      "listBuilds": "asc builds list --app-id 123456789"
    },
    "state": "COMPLETE"
  }]
}
listBuilds
only appears when
state == "COMPLETE"
. Use affordances to navigate without memorizing IDs.
上传响应中包含
affordances
字段,提供可直接运行的后续命令:
json
{
  "data": [{
    "affordances": {
      "checkStatus": "asc builds uploads get --upload-id abc123",
      "listBuilds": "asc builds list --app-id 123456789"
    },
    "state": "COMPLETE"
  }]
}
仅当
state == "COMPLETE"
时才会显示
listBuilds
。使用便捷操作无需记忆ID即可完成流程。

Reference

参考资料

See workflow.md for:
  • Full 5-step upload API flow internals
  • Build upload states and polling logic
  • Error scenarios and troubleshooting
如需了解以下内容,请查看workflow.md
  • 完整的5步上传API流程细节
  • 构建包上传状态与轮询逻辑
  • 错误场景与故障排查