CFBundleVersion必须高于以前的版本

时间:2012-03-17 23:23:02

标签: ios xcode itunesconnect

我正在向我的某个应用提交更新。我已经用我开发的许多不同的应用程序完成了这几十次,但是这个应用程序因为一些奇怪的原因而失败了。我存档我的应​​用程序,然后尝试验证存档并收到以下错误消息:

This bundle is invalid. The key CFBundleVersion in the Info.plist file must 
contain a higher version than that of the previously uploaded version.

iTunesConnect显示此应用目前为1.0,我已将其配置为准备上传1.1版(带有应用图标编辑的屏幕截图):

iTunes Connect Screenshot

以下是我的应用目标的摘要信息的屏幕截图,其中显示版本和简短版本均为“1.1”:

enter image description here

以下是Bundle Archive的Info.plist的上半部分:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AppStoreFileSize</key>
    <integer>20859080</integer>
    <key>ApplicationProperties</key>
    <dict>
        <key>ApplicationPath</key>
        <string>Applications/MyApp.app</string>
        <key>CFBundleIdentifier</key>
        <string>com.mydomain.myapp</string>
        <key>CFBundleShortVersionString</key>
        <string>1.1</string>

这是Archive软件包中应用程序内的相关Info.plist:

<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>

我更新的应用程序中的所有版本号都说1.1,iTunesConnect说它预计会有1.1 ......但它抱怨这个数字是错误的。

我错过了什么?

10 个答案:

答案 0 :(得分:50)

事实证明,我在原始提交中遇到了一些问题,导致用户可见版本为“1.0”,但内部捆绑版本为“1.2”。所以我把我的新版本改为1.3和1.3,提交工作正常。

enter image description here

答案 1 :(得分:47)

FYI。 Apple认为1.11&gt; 1.2,所以如果你从1.11到1.2,你需要一直到1.20。

享受。

答案 2 :(得分:24)

同样的事发生在我身上。我目前的App Store版本 2.03 。我尝试上传 2.1 。我所要做的只是将其改为 2.10 并且它有效。

答案 3 :(得分:5)

增加CFBundleShortVersionString或“Bundle versions string,short”为我做了Job。

答案 4 :(得分:3)

以下是我解决问题的方法(而且我猜测这是很多人的问题):

1)单击项目设置的常规选项卡(可以通过单击所有代码文件顶部的项目名称来访问它。)

2)确保构建字段与您在plist中放置的&#34; Bundle Version&#34;键。

这对我来说是个问题,无论出于什么原因他们都不同步。我认为当你改变Bundler Version键时,它应该同步(反之亦然)。但它无论出于何种原因都没有发生 - 可能是一个错误。

答案 5 :(得分:2)

我的问题是,我尝试将1.9.12设置为1.9.2 ...如果您考虑将其设置为1.9.2实际上是1.9.02,那么如果您设置 1.9.20 解决问题。

答案 6 :(得分:1)

这可能完全是由于另一个原因造成的。

我有一个活跃的TestFlight测试版正在运行。 构建2020 ,版本407

我为官方 App Store审核提交了一个应用。 构建2020 ,版本435,并获得批准。它只是坐在那里,等着我把它推到App Store。

在没有添加复杂的侧面故事的情况下,我想要做的是让我的TestFlight测试用户获得更新版本,以便在开始App Store版本之前预览几天的官方App Store版本。你为什么问?因为他们获得免费功能,一旦应用程序上线,就会花钱。

所以,我向TestFlight提交了 Build 2020 ,版本436,但它被拒绝了。

它被拒绝了,因为我有一个已批准的官方App-Store候选人具有相同的内部版本号

解决方案:更改TestFlight版本的内部版本号。我向TestFlight提交了 Build 20200 (我添加了一个额外的零)版本436,并且它被批准了。不用担心,只要您仍在使用相同的BundleID,您仍然可以将此构建推送到同一个TestFlight beta组。

答案 7 :(得分:1)

其中一个原因可能是下一个情况: 您使用内部版本号50发送到AppStore版本1.0。 您决定将其提供给TestFlight用户进行测试。同时决定将此版本发送给AppStore进行审核。用户开始测试它并且一切正常。一段时间后AppStore批准它,而不是它的发布(它具有开发人员peinding状态)。在您做了一些更改并希望为您的Testflight用户提供新版本之后。您决定将内部版本号增加到51并将版本号保持为1.0。在这种情况下,您将收到您在问题中描述的错误。你也必须增加App版本。

答案 8 :(得分:0)

如果以上答案无法解决您的问题,请确保Xcode中的版本必须与您在Itunes connect中创建的版本相同。

就我而言,在itunes connect上,版本为1.38但Xcode中的版本为1.3.8。 一旦我在Xcode中将版本更改为1.38,问题就解决了。

答案 9 :(得分:0)

对我来说,发生问题的原因仅是因为先前的版本已经由Apple审查,但我没有发布。拒绝旧版本后,我便可以上传新版本。版本号很好。 是的...在上传新版本之前,请先检查您的App Store Connect