iPhone崩溃日志说"版本:???"

Dan*_*ich 25 iphone crash

我正在开发一个iPhone应用程序并进行临时分发以进行beta测试.我的用户正在向我发送崩溃日志,说明:

Identifier:      MyAppName
Version:         ??? (???)
Code Type:       ARM (Native)
Run Code Online (Sandbox Code Playgroud)

我无法理解如何用真实版本号替换这些问号.我已经将我的Info.plist配置为包含CFBundleVersion和CFBundleShortVersionString,但这没有帮助...崩溃日志仍然只包含问号而不是我期望的版本号.

如何设置我的版本以便它显示在崩溃日志中?

编辑显然,由于iPhone CrashReporter中可能存在错误,因此无法正确设置"版本".但是有解决方法吗?在崩溃日志元数据中插入版本号(例如内部版本号或SCM版本号)的其他方法是什么?

rpe*_*ich 28

最简单的方法是保存您分发的所有二进制文件的UDID,并将它们与崩溃转储中的UDID进行比较.您创建的每个构建的UDID都不同.

要检索UDID:

$ dwarfdump -u /path/to/MyApp.app/MyApp
UUID: 864F3D54-F165-3356-3292-2C9C48E97C55 (armv6) /path/to/MyApp.app/MyApp
Run Code Online (Sandbox Code Playgroud)

并将其与crashlog进行比较:

Binary Images:
    0x1000 -    0x5ffff +MyApp armv6  <864F3D54F165335632922C9C48E97C55> /var/mobile/Applications/5FB3933B-348E-42D7-B99F-76DE284D2148/MyApp.app/MyApp
Run Code Online (Sandbox Code Playgroud)

  • 非常有帮助,感谢@rpetrich,如果可以帮助一些人,搜索所有Xcode 4档案:`find~/Library/Developer/Xcode/Archives/-name <YOURAPPEXE> -print0 | xargs -0 dwarfdump -u | grep <UDID UPPERCASE的部分>`.我认为使用`mdfind`可以实现同样的目的,但看起来像聚光灯而不是索引`.xcarchive`文件内容. (2认同)