我非常熟悉 iOS 应用程序的崩溃日志是如何符号化的,但这个是一个令人头疼的问题。
我有带有 build 2345 的 MyApp,它通过 TestFlight 作为测试版发布,使用正常的存档,然后在 Xcode 7.2 (7C68) 中上传到 App Store 流程。
当我为 xcarchive 中的二进制文件执行 dwarfdump 时,我得到以下信息:
dwarfdump --uuid MyApp.app/MyApp
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app/MyApp
这是 dSYM 文件的 dwarfdump:
dwarfdump --uuid MyApp.app.dSYM
UUID: 0BDA6D6F-3C0D-339E-842F-C2CB04199E10 (armv7) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
UUID: B2A69BEC-DF5E-33EA-A9E0-490EBF03074C (arm64) MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
到目前为止,一切都很好。
但是,我通过 Organize > Crashes for build 2345 收到了一个崩溃,它对二进制文件有不同的 UUID:
0x100054000 - 0x1000fffff myapp arm64 <3715db2438743cf5aac1742d9a214c2c> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/MyApp.app/myapp
0x100144000 - 0x1001e7fff AWSCore arm64 <c2aa13236d0437b98194c0487db69e68> /var/mobile/Containers/Bundle/Application/7313BC02-3F90-4F94-82E2-CBDC941E5D68/blink.app/Frameworks/AWSCore.framework/AWSCore
....
我确定崩溃报告是针对同一个版本的,但是这里的 UUID 是3715db2...
我期望的b2a69bec...
我确实启用了位码,所以我尝试从 Organizer Archive 页面下载 dSYM(即使我构建了 arm64,所以 Apple 不应该这样做),它检索了崩溃报告中其他 UUID/二进制文件的 dSYM,但没有myapp
二进制。事实上,该myapp
二进制文件是唯一没有下载相应 dSYM 的二进制文件!
所以有几个问题:
- myapp 二进制文件的
3715db2438743cf5aac1742d9a214c2c
版本来自哪里? - 我怎样才能得到它的 dSYM 以便我可以象征崩溃?Apple 不会使用 Xcode 中的“下载 dSYM”选项返回它。