我正在开发一款iPhone应用程序并进行临时分发以进行beta测试。我的用户正在向我发送崩溃日志,说明:
Identifier: MyAppName
Version: ??? (???)
Code Type: ARM (Native)
我无法理解如何用真实版本号替换这些问号。我已经将Info.plist配置为包含CFBundleVersion和CFBundleShortVersionString,但这没有帮助...崩溃日志仍然只包含问号而不是我期望的版本号。
如何设置版本以使其显示在崩溃日志中?
编辑显然,由于iPhone CrashReporter中可能存在错误,因此无法正确设置“版本”。但是有解决方法吗?在崩溃日志元数据中插入版本号(例如内部版本号或SCM版本号)的其他方法是什么?
答案 0 :(得分:28)
最简单的方法是保存您分发的所有二进制文件的UDID,并将它们与崩溃转储中的UDID进行比较。对于您所做的每个构建,UDID都是不同的。
检索UDID:
$ dwarfdump -u /path/to/MyApp.app/MyApp
UUID: 864F3D54-F165-3356-3292-2C9C48E97C55 (armv6) /path/to/MyApp.app/MyApp
并将其与crashlog进行比较:
Binary Images:
0x1000 - 0x5ffff +MyApp armv6 <864F3D54F165335632922C9C48E97C55> /var/mobile/Applications/5FB3933B-348E-42D7-B99F-76DE284D2148/MyApp.app/MyApp
答案 1 :(得分:3)
所有iPhone应用程序似乎都是这种情况,包括来自Apple 的应用程序。您可以在控制台中查看设备的所有iPhone应用程序崩溃日志:
FILES /〜/库/日志/ CrashReporter始终/移动设备/...
该列表中的所有内容都显示我的未知版本,但MobileSafari除外,它的信息略有不同:
OS Version: iPhone OS 2.2.1 (5H11)
Date: 2009-02-15 02:19:06 -0600
所有其他应用程序,包括Apple的Calendar&amp;邮件应用程序会显示其版本号的问号。
其他开发人员似乎已注意到the same thing。这可能是iPhone的CrashReporter程序中的一个错误。
答案 2 :(得分:2)
对于adhoc和beta测试,只需更改您的标识符即可。 MyAppNameV1.0b36
代替MyAppName
显然这不适用于您的App Store版本,但它会让您通过Beta测试。
请注意,这可能需要通配符临时配置文件,但这些可以通过开发人员门户轻松完成。