近日,大量iOS开发者在使用苹果官方命令行工具 altool 进行应用包验证或上传时,遇到一个棘手的“冻结”问题:工具运行至 swinfo 阶段后停滞不前,无法正常完成流程。受影响的开发者反映,该问题已持续数日,导致新版本提审、TestFlight内测包分发及企业签名验证等工作严重受阻。截至发稿,苹果官方尚未发布正式声明,但开发者社区已开始积极寻找临时解决方案。
问题重现:altool 在 swinfo 处“罢工”
altool 是苹果为开发者提供的命令行工具,常用于自动化验证和上传 .ipa 或 .pkg 包到 App Store Connect。其工作流程通常包括包签名检查、元数据解析、资产验证等多个阶段。其中,swinfo 阶段主要负责读取应用内的 Info.plist 及签名证书信息,并与苹果服务器进行远程验证。
根据多位开发者反馈,问题表现为:终端中执行 xcrun altool --validate-app -f app.ipa -u [账号] 后,日志正常输出至 Validating... 并进入 swinfo,随后长时间停留在该步骤,不报错也不退出,直至手动终止。部分开发者等待超过30分钟后仍无响应。受影响的系统环境包括 macOS Ventura 13.4 及以上版本,Xcode 14.3 和 15.0 beta 均被提及。
影响范围:自动化流水线与个人开发者均受波及
该问题对 iOS 开发工作流造成了直接冲击。使用 CI/CD 工具(如 Jenkins、GitHub Actions 或 Fastlane)进行自动打包发布的团队首当其冲——流水线在 altool 验证步骤无限挂起,导致后续构建任务阻塞。一位来自某头部出行应用的DevOps工程师表示:“我们的iOS发布流程完全依赖altool做预检,现在每天都有数十个构建排队等待,严重影响了发版节奏。”
个人开发者同样叫苦不迭。独立开发者李松提到,他的应用原计划本周三提交审核,但altool在swinfo处卡死四次,换了不同网络环境、重签证书甚至更换开发机后均未解决。“苹果的开发者工具一直以稳定著称,这种‘死锁’式的bug非常罕见,让我怀疑是不是服务器端接口出了问题。”
原因推测:服务器端鉴权变更还是本地缓存冲突?
针对 swinfo 卡死的原因,技术社区存在几种主流猜测。
猜测一:苹果服务器接口调整。 swinfo阶段需要与 Apple 的验证服务通信,以确认包文件的签名状态。有开发者通过抓包发现,altool 在卡死前向 https://swinfo.apple.com 发送了POST请求,但未收到响应。这暗示苹果可能近期对后端进行了某些改动,导致旧版altool或某些证书格式无法被正确识别,从而造成服务器端超时但客户端未设置合理超时机制。
猜测二:Xcode 15 beta 引起的兼容性问题。 部分反馈集中在已安装 Xcode 15 beta 的机器上,但同样有使用 Xcode 14.3 稳定版的用户出问题。使用 xcrun -k 查看altool版本时,发现其内部依赖的库文件可能因多版本Xcode共存而混乱。有用户通过卸载Xcode 15 beta并清理命令行工具链后暂时恢复,但并非所有人都能复现此操作。
猜测三:本地密钥链(Keychain)或 .env 文件损坏。 少数案例中,重置开发证书、重新登录 App Store Connect 账号或清理 ~/Library/Caches/com.apple.amp.DeviceService 目录后,问题得到缓解。这表明本地存储的临时授权票据可能已过期或损坏。
临时解决方案:社区提供的“应急处方”
尽管苹果尚未发布补丁,但开发者已总结出几种可在生产中尝试的临时方法:
- 跳过altool验证,直接使用Xcode图形界面上传。 对于非自动化场景,可通过 Xcode > Window > Organizer 中手动选择包并上传,此方式无需经过altool的swinfo步骤,但会降低交付效率。
- 使用第三方工具替代验证。 如 Fastlane 的
gym、sigh等插件可独立打包并上传,但目前Fastlane底层仍调用altool,部分用户发现升级Fastlane至2.218.0后改用upload_to_app_store的skip_binary_validation参数可绕过swinfo阻塞。 - 修改altool超时参数(并不完美)。 有开发者尝试通过设置
$TIMEOUT环境变量或使用timeout命令强制终止,但会使验证流程中断,无法获取正式错误信息。 - 回退Xcode命令行工具版本。 使用
xcode-select切换至较旧版本(如 Xcode 14.2)的Command Line Tools,部分用户反映该版本下的altool工作正常。注意需保留App Store Connect上传功能所需的最低版本支持。
呼吁与展望:苹果需尽快修复并建立回滚机制
此次事件折射出苹果生态中开发者工具的单点故障风险。当官方CLI工具出现非预期行为时,整个发布管道可能陷入瘫痪,而苹果缺乏即时反馈渠道和快速回滚选项。多位资深开发者建议,苹果应像对待App Store审核状态那样,为altool等核心工具提供版本变更日志和降级指南,同时增加超时重试机制和详细错误日志输出。
截至本文发稿,苹果开发者论坛(Apple Developer Forums)中该问题的热度已飙升至当日第一,但官方技术团队尚未给出回复。我们建议受影响的开发者保持关注,同时参照上述临时办法安排发布计划。若您遇到类似问题,欢迎通过本文评论区或后台留言分享您的环境参数和解决路径,我们将持续跟踪报道苹果的官方修复进展。