10

我有一个用户下载的 TestFlight 版本,然后我们发布了一个新版本,他们安装了该版本。他们在尝试启动应用程序时收到此错误:

8 月 31 日星期三 20:13:28 未知 SpringBoard[1176]:/private/var/mobile/Applications/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/X.app 中的“X”包没有可执行路径。请检查捆绑包的 Info.plist 文件。

我使用 PhoneDisk 检查了应用程序的 plist,并且可执行文件与应用程序名称匹配。有任何想法吗?

4

4 回答 4

10

就我而言,我没有更新CFBundleShortVersionString我尝试下载的版本。一旦我将版本从 1.1.9.1 更新到 1.1.9.2 并重新下载临时构建,它就停止了崩溃。

我猜 Apple 正在为临时构建缓存 Info.plist 中的一些信息,并且仅仅碰撞CFBundleVersion并不足以破坏缓存。

于 2011-09-01T06:58:50.080 回答
1

来自“Core Foundation Keys”:“CFBundleShortVersionString (String - iOS, Mac OS X) 指定捆绑包的发布版本号,它标识应用程序的发布迭代。发布版本号是由三个句点分隔的整数组成的字符串. 第一个整数表示应用程序的主要修订,例如实现新功能或重大更改的修订。第二个整数表示实现不太突出的功能的修订。第三个整数表示维护版本。此键的值与“CFBundleVersion”,它标识应用程序的迭代(已发布或未发布)。可以通过将其包含在 InfoPlist.strings 文件中来本地化此密钥。

CFBundleShortVersionString 也不能包含任何字母,只允许使用整数。因此,如果您有类似 1.2.5b1 的东西,应用程序将无法启动,奇怪的是出现“...没有可执行路径...”之类的错误。

于 2012-07-03T07:53:26.090 回答
0

在我们的正常应用程序版本为 nnn 并且在更新中我们转到应用程序版本为 nnnn 的情况下,我遇到了这个特殊错误

我们没有时间深入研究它,但简单地回到原来的号码方案就解决了这个问题。

于 2013-06-26T15:18:37.703 回答
0

您应该在 Info.plist 中指定两个键(CFBundleVersion 和 CFBundleShortVersionString)。

CFBundleVersion (String - iOS, OS X) 指定捆绑包的构建版本号,它标识捆绑包的迭代(已发布或未发布)。构建版本号应该是由三个非负的、以句点分隔的整数组成的字符串,其中第一个整数大于零。该字符串应仅包含数字 (0-9) 和句点 (.) 字符。前导零会从每个整数中截断并被忽略(即 1.02.3 等价于 1.2.3)。此键不可本地化。

CFBundleShortVersionString 指定包的发布版本号,它标识应用程序的发布迭代。

每次为您的测试或用户构建具有相同发布版本的临时版本时,您可以将 CFBundleVersion 添加 1 (CFBundleShortVersionString)

例如:您的 CFBundleShortVersionString 为 1.2.3,您的 CFBundleVersion 为 1000。当您修复错误并构建临时版本进行测试时,您可以将 CFBundleShortVersionString 更改为 1001。

于 2014-01-20T02:09:35.080 回答