无法上传由ios5构建的应用程序 - 与UIRequiredDeviceCapabilities问题相关

时间:2011-11-11 02:07:44

标签: iphone ios5 itunesconnect

我遇到问题,我使用ios 5像以前一样构建分发版应用程序, 当我将二进制应用程序上传到iTunes时,它报告错误如下:

“此捆绑包无效,info.plist中的密钥UIRequiredDeviceCapabilities可能不包含阻止此应用程序在其上运行的值...”

我也是googing这种类型的问题,我得到了答案,说我必须从iTunes删除旧版本的应用程序(这将丢弃旧的应用程序用户和评级)并上传新的应用程序到iTunes ...这种方式看起来是不好的解决方案,我想要保留旧应用程序用户......任何人都可以为此目的提供帮助非常感谢

6 个答案:

答案 0 :(得分:12)

我有同样的问题,我将我的plist文件与一个工作正常的旧版本进行了比较,并且所需的设备功能行甚至都不存在。删除值,使行不存在,应该处理它。

答案 1 :(得分:6)

是的,删除必需的设备功能行是可以的!

答案 2 :(得分:2)

我在Xcode 4.2之前创建的一些项目中看到过这个问题,然后使用Xcode 4.2将二进制文件提交到应用程序商店。

您需要进入info-plist并添加“Required Device Capabilities”键。这个键是一个数组,你需要两个字符串项:“armv6”和“armv7”。

plist源看起来像这样:

<key>UIRequiredDeviceCapabilities</key>
 <array>
  <string>armv6</string>
  <string>armv7</string>
</array>

答案 3 :(得分:2)

我们尝试了上面列出的解决方案,并将armv6和armv7添加到我们的info.plist文件中。但是,当plist文件包含用于UIRequiredDeviceCapabilities的armv6和armv7时,App store拒绝上传我们的app,因为需要armv7会阻止应用程序在armv6设备上运行。上传错误是:

“此捆绑包无效.Info.plist中的密钥UIRequiredDeviceCababilities可能不包含阻止此应用程序在先前版本支持的设备上运行的值。

因此,要使用xcode 4.2将armv6添加到我们的应用程序中,我们必须做两件事:

1)在info.plist文件中的UIRequiredDeviceCapabilities中设置armv6, 2)将armv6和armv7设置为项目文件中的Architecture设置

答案 4 :(得分:1)

原因是在信息plist中添加/更新REQUIREDDEVICECAPABILITIES。

当我尝试使用XCODE 4.2为使用XCODE 3.2提交的应用程序提交更新而不在信息plist中添加REQUIREDDEVICECAPABILITIES时,我遇到了这个问题。

我尝试更改架构,添加/删除REQUIREDDEVICECAPABILITIES等。

Atlast将部署目标更改为4.3并且工作正常。

更清楚的是,部署目标低于4.3要求armv6 / armv7架构和XCODE 3.2并不要求XCODE 4.3要求用户提及。

答案 5 :(得分:0)

如果想要定位所有iOS设备,只需删除密钥UIRequiredDeviceCapabilities。

在develope.apple上关注此链接 https://developer.apple.com/library/ios/qa/qa1623/_index.html