10

我正在尝试上传 AppStore 中已有应用的新版本。以前的版本是使用 Xcode 9.4 上传的。但现在需要 Xcode 10 才能获得批准。

可悲的是,Xcode无法归档项目,所以我卡在第一步,甚至无法生成提交的二进制文件。

没有错误:根据 Xcode,我们的归档过程有超过 2000 个任务,只是卡在任意任务中(总是一样)。Xcode 不会崩溃,不会显示错误,也不会抱怨。它只是无法通过该任务,IDE 将永远留在那里。

我们在不同的机器上进行了尝试,也尝试了两个版本:应用程序的先前版本(可以使用 Xcode 9.4 存档)和新版本,成功迁移到 Swift 4.2。

更新:

  • 传统的建筑系统也不起作用。
  • Build for a Generic iOS Device也会卡住(不仅仅是归档),但软件可以编译并在模拟器上运行。
  • 尝试编译选择 Swift 4(而不是 4.2)的非迁移版本,结果相同。
  • 玩过优化级别、整体编译与增量编译等,结果始终相同。
  • 在 Xcode 9.4 中,它很好地为通用 iOS 设备构建,而无需更改任何内容。
4

3 回答 3

13

最后,我从项目构建设置的“有效架构”中删除了“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”。

于 2018-09-21T03:28:22.377 回答
3

通过在构建设置中删除对 Swift Compile 的优化,我们能够使用 DSYM 将其归档。

构建设置 -> Swift 编译器 - 代码生成 -> 发布

设置为“无优化”

JacobJ84 在 Apple 论坛上建议的原始修复:https ://forums.developer.apple.com/thread/115185

于 2019-05-15T18:15:48.020 回答
0

就像 LexTang 暗示的那样,不需要从有效架构中删除 armv7 的一种解决方法是为“调试信息格式”设置“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

于 2019-02-11T10:21:06.270 回答