iOS TestFlight CI自动化:如何自动获知构建处理完成状态?
自动监控App Store Connect构建处理状态的方案
针对你的问题,我整理了几种可行的方案,从官方原生能力到现成工具都覆盖到了:
一、官方原生方案:App Store Connect API & Webhooks
这是最可靠的方式,完全基于苹果官方提供的能力:
- Webhooks(首推):你可以在App Store Connect里配置Webhook,订阅
build相关的事件(比如构建处理完成、状态变更)。当构建处理完成时,苹果会主动向你指定的服务器发送HTTP请求,无需手动轮询。配置路径是App Store Connect的「用户和访问权限」→「Webhooks」,选择事件类型为「Builds」即可。 - API轮询:如果Webhook不适合你的场景,可调用App Store Connect API的
GET /v1/builds/{buildId}接口,查询构建的processingState字段。常见状态值包括:PROCESSING:构建正在处理中VALID:处理完成且有效FAILED:处理失败
你可以用Python的appstoreconnect库、Ruby的spaceship库编写简单脚本,定期轮询这个接口,直到状态变为非PROCESSING。
二、现成工具/服务
如果不想自己开发,这些现成工具可以直接帮你实现监控:
- Fastlane:作为iOS开发常用的自动化工具,Fastlane的
spaceship模块能直接和App Store Connect API交互。你可以写一个简单的Fastlane lane,自动轮询构建状态直到处理完成,示例代码大概是这样:lane :wait_for_build do build = Spaceship::ConnectAPI::Build.find("your-build-id") until build.processing_state != "PROCESSING" puts "Build still processing..." sleep 60 build.reload end puts "Build processing done! State: #{build.processing_state}" end - CI/CD平台:Bitrise、GitHub Actions、GitLab CI这类平台都有现成的App Store Connect集成插件,可以配置步骤等待构建处理完成后,自动执行后续操作(比如添加测试组、提交审核)。
- 低代码自动化工具:如果想用监控邮件的方式,Zapier、Make(原Integromat)可以设置邮件触发器,当收到苹果发送的「构建处理完成」邮件时,自动触发后续动作。不过这种方式不如API可靠,邮件可能延迟或被邮箱过滤。
三、开源脚本/工具
GitHub上有不少开源项目可以直接复用:
- 基于Python的
appstoreconnect-cli,可以通过命令行查询构建状态,你可以封装成定时任务来监控。 - 一些专门的构建状态监控脚本,只需配置构建ID和轮询间隔就能运行。
总的来说,优先推荐用App Store Connect的Webhooks或者API轮询,这两种方式最稳定可靠;如果不想自己开发,Fastlane或者CI/CD平台的集成是最便捷的选择。
内容的提问来源于stack exchange,提问作者Fattie
相关产品推荐
相关产品推荐

