我在App Store上有一个崩溃的应用程序。我已经在SO上尝试了几个解决方案来表示我的应用程序,在不同的时间使用组织器,终端和仪器。到目前为止没有任何工作 - 我的应用程序中的方法报告中的行永远不会被象征化,即使是Apple方法的行也是如此。环顾四周后,似乎这可能与应用程序名称有关,这与“Angie's List”一致 - 同时包含撇号和空格。现在更改应用名称为时已晚,因为它在商店中存在。我没有看到任何解决方案,并希望在正确的方向上推动。
答案 0 :(得分:1)
通常应用名称无关紧要,除非符号化脚本中存在我怀疑的错误。您是否检查过是否有正确的dSYM?
如果您向下滚动最新的崩溃日志,请检查Binary Images
下方的第1行,它将如下所示
0x1000 - 0x24cfff +YourApp armv7 <f6012c517d783486ab53e45d948b92a2> /var/mobile/Applications/A8EC3C1F-44AF-169A-BC0E-FBBC0F04CDF5/YourApp.app/YourApp
f6012c517d783486ab53e45d948b92a2
是导致崩溃的可执行文件的UUID。
您可以使用终端找到正确的dSYM,如下所示:
mdfind "com_apple_xcode_dsym_uuids == F6012C51-7D78-3486-AB53-E45D948B92A2"
字符串F6012C51-7D78-3486-AB53-E45D948B92A2
是上面的字符串,重新格式化为大写和8-4-4-4-12组。我猜这个命令不会返回任何内容。
如果您有dSYM(例如在.xcarchive中),您可以按如下方式在终端中检查其UUID:
dwarfdump --uuid YourApp.app.dSYM
如果符号无法自动生效,您可以按照此处发布的说明手动尝试:iOS crash reports: atos not working as expected
如果应用程序中包含空格或撇号等特殊字符,则默认的Apple工具链将无法对其进行符号化。原因是工具链中使用的工具otool
无法处理。无论你如何传递文件名。因此,要解决此问题,您必须执行以下操作:
My App's.app.dSYM
到MyApps.app.dSYM
Contents/Resources/DWARF
现在再试一次。避免这一切的最佳方法:从不在您的应用名称中使用特殊字符。如果您想调整屏幕上显示的名称,请使用CFBundleDisplayName
或相应的plist条目。