上传到 iOS App Store 时出错:错误 ITMS-9000 “此捆绑包无效”
Posted
技术标签:
【中文标题】上传到 iOS App Store 时出错:错误 ITMS-9000 “此捆绑包无效”【英文标题】:Error uploading to iOS App Store: ERROR ITMS-9000 "This bundle is invalid" 【发布时间】:2014-05-15 15:29:44 【问题描述】:当我们尝试将新版本的应用上传到 Apple 的 App Store 时,我们在 Application Loader 中收到以下错误:
ERROR ITMS-9000: "This bundle is invalid. New apps and app updates submitted to the App Store
must be built with public (GM) versions of Xcode 5 and ios 7 SDK. Do not submit apps built with
beta software." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
我们已经在使用最新可用版本的 Xcode、5.1.1(从 Mac App Store 下载)和 iOS SDK v7.1(随 Xcode 5.1.1 一起提供)构建。
我们的应用是使用 Marmalade 7.2.1 构建的。我们已经尝试重建我们的应用使用的所有 EDK 扩展和静态库。
可能出了什么问题?还有其他人可以告诉我们有关错误的更多信息以帮助我们追踪它吗?
【问题讨论】:
我遇到了完全相同的问题,我们不使用果酱。 @MrRogers 您是直接使用 Xcode 打包您的应用程序,还是使用类似于 Marmalade 的其他系统?我注意到 Oxygene 似乎还要求将这些设置手动添加到Info.plist
。
我使用的是 Apple 提供的 Application Uploader 应用。
@MrRogers 你是如何创建你上传的包呢?如果您使用的是在 Xcode 之外创建 .ipa 的工具(例如 Marmalade 或 Oxygene),那么问题可能是由包含在最终 .ipa 中的 Info.plist 中的值引起的,就像我一样。
丰富对不起!我找出了我的问题的原因,并为这次讨论完全间隔了它。 :( 问题是我被消息的 beta 软件部分所吸引,以至于我没有注意到我们的构建机器有 Xcode 5.1 而不是 Xcode 5.1.1,这是无效的。
【参考方案1】:
Starting May 15, 2014, new apps and app updates submitted to the App Store must be built with Xcode 5.1.1
你必须更新你的 xcode。
【讨论】:
如果这是问题所在,那么错误消息就足以解决它!但是,正如问题中所述,我们已经在使用最新版本的 Xcode 5.1.1。问题是我们Info.plist
中的值没有反映我们使用的Xcode 版本。【参考方案2】:
把所有东西都清理干净。
检查开发者/分发证书和移动配置文件是否正确创建,如果没有,则从开发者帐户中撤销它们并创建一个全新的。
从 /Users/yourSystemName/Library/MobileDevice/Provisioning Profiles 中删除所有配置文件
现在,从您的钥匙串中导出所有证书和密钥,并将它们保存为备份以供再次使用。
现在首先安装您的开发者/分发证书并安装配置文件。并上传您的申请。这是经过测试的方式,应该可以解决您的问题。谢谢。
【讨论】:
谢谢,但正如我在my own answer 中所述,问题是由Info.plist
中的一些过时值引起的。【参考方案3】:
当 Xcode 创建一个 .ipa
包时,它会向项目的 Info.plist 添加一些元素。
由于我们的包是使用 Marmalade 的部署工具创建的,因此需要手动将这些元素包含在 Info.plist
中,然后将其直接复制(经过少量预处理)到最终的 .ipa
中。
Marmalade 为此在其安装中包含一个标准的Info.plist
文件。但是,您可以覆盖它,我们通过制作他们的文件副本并使用我们需要进行的更改来更新它来做到这一点。
更高版本的 Marmalade 对此文件进行了一些更改,我们没有将这些更改复制到我们的文件中,不同之处显然是导致 App Store 认为该应用程序是使用早期版本构建的Xcode 比实际使用的版本高。
不同的值是DTSDKName
、DTSDKBuild
、DTXCode
、DTXcodeBuild
、DTPlatformBuild
和DTCompiler
。
【讨论】:
以上是关于上传到 iOS App Store 时出错:错误 ITMS-9000 “此捆绑包无效”的主要内容,如果未能解决你的问题,请参考以下文章
将 iOS 7 应用程序上传到 Apple App Store 错误