Xcode 10 无法存档项目
Xcode 10 not being able to archive project
我正在尝试上传已在 AppStore 中的应用程序的新版本。以前的版本是使用 Xcode 9.4 上传的。但是现在 Xcode 需要 10 才能获得批准。
遗憾的是,Xcode 无法存档项目,所以我卡在了第一步,甚至无法生成二进制文件提交。
没有错误:根据Xcode,我们的归档过程有2000多个任务,只是卡在任意任务(总是一样)。 Xcode 不会崩溃,不会显示错误,也不会抱怨。它就是无法通过该任务,IDE 永远留在那里。
我们在不同的机器上试过了,也尝试了两个版本:应用程序的旧版本(可以用 Xcode 9.4 存档)和新版本,成功迁移到 Swift 4.2 .
更新:
- 遗留建筑系统也不起作用。
- 为 通用 iOS 设备构建 也会卡住(不仅仅是存档),但软件可以在模拟器上编译和运行。
- 尝试编译非迁移版本选择 Swift 4(而不是 4.2)和相同的结果。
- 尝试过优化级别、整体编译与增量编译等,结果始终相同。
- 在 Xcode 9.4 中,它为 通用 iOS 设备 很好地构建而无需更改任何内容。
最后,我从项目构建设置的 "Valid Architectures" 中删除了 "armv7"。存档了!这意味着 iPhone 4S 不再兼容。
但是,我认为苹果不会以这种方式弃用 4S。通过深入研究日志,我发现它卡在创建 dSYM 符号中。
[17:15:49]: ▸ Generating 'ZUS_INHOUSE_DEV.app.dSYM'
[17:16:15]: ▸
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _lum_convert
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_hscale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _lum_h_scale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_cfmt_convert
[17:16:15]: ▸
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_chscale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _chr_h_scale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_no_chr
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _no_chr_scale
[17:16:30]: ▸ (arm64) could not find object file symbol for symbol _vlc_entry__audio_filter_libscaletempo_pitch
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸ (arm64) failed to insert symbol '_best_overlap_offset_float' in the debug map.
因此,我想,另一个解决方法是将 "Debug Infomation Format" 从 "DWARF with dSYM File" 更改为 "DWARF"。
就像 LexTang 暗示的那样,无需从有效体系结构中删除 armv7 的一种可行的解决方法是为 "Debug Information Format" 设置 "DWARF"。不幸的是,这样我们就失去了自动崩溃符号化的选项。这种寻找崩溃原因的方法要困难得多,但并非不可能。在以下链接中,您可以找到有关符号化 iOS 崩溃的更多信息:
https://coderwall.com/p/ezdcmg/symbolicating-an-ios-crash-log-without-the-original-dsym-file
https://www.apteligent.com/technical-resource/symbolicating-an-ios-crash-report
通过在构建设置中删除 Swift 编译的优化,我们能够使用 DSYM 将其归档。
构建设置 -> Swift 编译器 - 代码生成 -> 发布
设为"No Optimizations"
JacobJ84 在 Apple 论坛上建议的原始修复:https://forums.developer.apple.com/thread/115185
我正在尝试上传已在 AppStore 中的应用程序的新版本。以前的版本是使用 Xcode 9.4 上传的。但是现在 Xcode 需要 10 才能获得批准。
遗憾的是,Xcode 无法存档项目,所以我卡在了第一步,甚至无法生成二进制文件提交。
没有错误:根据Xcode,我们的归档过程有2000多个任务,只是卡在任意任务(总是一样)。 Xcode 不会崩溃,不会显示错误,也不会抱怨。它就是无法通过该任务,IDE 永远留在那里。
我们在不同的机器上试过了,也尝试了两个版本:应用程序的旧版本(可以用 Xcode 9.4 存档)和新版本,成功迁移到 Swift 4.2 .
更新:
- 遗留建筑系统也不起作用。
- 为 通用 iOS 设备构建 也会卡住(不仅仅是存档),但软件可以在模拟器上编译和运行。
- 尝试编译非迁移版本选择 Swift 4(而不是 4.2)和相同的结果。
- 尝试过优化级别、整体编译与增量编译等,结果始终相同。
- 在 Xcode 9.4 中,它为 通用 iOS 设备 很好地构建而无需更改任何内容。
最后,我从项目构建设置的 "Valid Architectures" 中删除了 "armv7"。存档了!这意味着 iPhone 4S 不再兼容。 但是,我认为苹果不会以这种方式弃用 4S。通过深入研究日志,我发现它卡在创建 dSYM 符号中。
[17:15:49]: ▸ Generating 'ZUS_INHOUSE_DEV.app.dSYM'
[17:16:15]: ▸
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _lum_convert
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_hscale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _lum_h_scale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_cfmt_convert
[17:16:15]: ▸
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_chscale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _chr_h_scale
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _ff_init_desc_no_chr
[17:16:15]: ▸ (arm64) could not find object file symbol for symbol _no_chr_scale
[17:16:30]: ▸ (arm64) could not find object file symbol for symbol _vlc_entry__audio_filter_libscaletempo_pitch
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸
[17:16:30]: ▸ (arm64) failed to insert symbol '_best_overlap_offset_float' in the debug map.
因此,我想,另一个解决方法是将 "Debug Infomation Format" 从 "DWARF with dSYM File" 更改为 "DWARF"。
就像 LexTang 暗示的那样,无需从有效体系结构中删除 armv7 的一种可行的解决方法是为 "Debug Information Format" 设置 "DWARF"。不幸的是,这样我们就失去了自动崩溃符号化的选项。这种寻找崩溃原因的方法要困难得多,但并非不可能。在以下链接中,您可以找到有关符号化 iOS 崩溃的更多信息: https://coderwall.com/p/ezdcmg/symbolicating-an-ios-crash-log-without-the-original-dsym-file https://www.apteligent.com/technical-resource/symbolicating-an-ios-crash-report
通过在构建设置中删除 Swift 编译的优化,我们能够使用 DSYM 将其归档。
构建设置 -> Swift 编译器 - 代码生成 -> 发布
设为"No Optimizations"
JacobJ84 在 Apple 论坛上建议的原始修复:https://forums.developer.apple.com/thread/115185