如何解决Xcode 13对应用执行公证操作时意外崩溃的问题
解决方案
这是Xcode 13.0(13A233)版本的已知bug,崩溃原因是ODR(按需资源)处理逻辑的断言失败:当项目没有启用按需资源时,Xcode仍会尝试读取不存在的ODR资源清单文件,传入空路径触发内部断言错误直接崩溃。你可以按照以下优先级尝试修复:
- 优先修改项目配置:打开项目的Build Settings,搜索
Enable On Demand Resources,将配置项改为NO,重新打包后再执行分发公证流程即可 - 若不想修改配置,可改用命令行完成公证流程,避开Xcode GUI的bug:
- 先在Distribute App流程中选择
Export而非Upload,导出完成Developer ID签名的应用包 - 执行命令提交公证:
xcrun notarytool submit 导出的应用zip包路径 --apple-id 你的苹果账号 --password 苹果ID专用密码 --team-id 你的开发者团队ID - 收到公证通过的通知后,执行命令 stapler 公证凭据:
xcrun stapler staple 你的应用.app
- 先在Distribute App流程中选择
- 升级Xcode到13.1及以上正式版本,该bug已在后续版本中被官方修复
额外提示:你可以检查Sparkle框架的版本,升级到最新的正式版,避免第三方框架内嵌的资源文件被误识别为ODR资源触发异常。
内容的提问来源于stack exchange,提问作者headbanger
相关产品推荐
相关产品推荐

