无法将应用程序二进制文件上传到App Store
我们终于到了将第一个iPhone应用程序提交到应用程序商店(或正在尝试)的地步,但我似乎无法让iTunes Connect接受上传。无法将应用程序二进制文件上传到App Store
我曾尝试通过网站(“您上传的二进制文件无效,签名无效,或未使用Apple提交证书进行签名。”)和Application Loader(“Info.plist确实不包含CFBundleResourceSpecification“)。
经过大量的阅读(包括questions like these),再读书,和google搜索,我可以说:
- 我敢肯定,捆绑标识符的AppID匹配。
- 有一个Icon.png,它是一个57x57 px PNG文件,这就是Info.plist中的确切名称。
- 我正在做一个设备,而不是模拟器,构建。
- 签名过程成功:生成结果显示此消息,并且运行
codesign -vvvv MyApp.app
表示没有问题。 - ZIP文件路径中没有奇怪的字符。
- 我已经删除了构建文件夹,并重新构建了二进制文件很多次。现在
,这是事实,在内置应用程序,Info.plist中不包含CFBundleResourceSpecification
关键,但它并不清楚,我在那里该值应该来自于,或者我需要添加哪些做这个工作。 (我可以找到使用苹果的搜索的唯一参考是一些code signing release notes ...但是,正如我上面提到的,代码签名步骤是成功的,据我所知道。)
有没有人跑过这个任何解释我还没有提到的问题?
编辑:下面是代码签名生成的步骤(略有删节)输出,FWIW:
code signing screenshot http://img70.yfrog.com/img70/8988/codesign.png
这个问题似乎已经是我在我的应用程序使用json-framework,并且包括它作为每the instructions in the wiki额外的SDK。我的猜测是,XCode对> 1 SDK的存在感到困惑,因此找不到默认的ResourceRules.plist。
我发现了两个解决方案(当然,解决办法,反正):
- 使用“代码签名资源规则路径”构建设置(默认情况下为空)来指定文件路径的XCode应该使用:
$(SDKROOT)/ResourceRules.plist
。这是有效的,似乎合理无害,但令人沮丧的是,XCode应该能够自己解决这个问题。 (我在json-framework上提交的very old issue中找到了此解决方案。) - 请勿使用SDK方法。相反,只需将文件直接包含到项目中,并使用本地路径更新
#import
语句。这是我最终采取的方法,因为我们做出了将所有外部依赖项折叠到项目本身的一般决定(以便其他开发人员在他们的机器上启动和运行的配置较少)。
我不知道这是否是在XCode中的一个错误,或者一些错误的JSON框架,但我万一已经对后者filed an issue。
更新,2010年6月30日:我提交的问题已经结束,并且Brautaset先生计划在下一个版本(2.3)中删除对SDK选项的支持。此外,code now lives on GitHub,尽管目前Google代码页仍然存在。
我soooo爱你的男人。刚刚遇到同样的问题,我的头撞了近一个小时。我也安装了Xcode 3.2.2 beta,所以开始考虑重新安装所有的东西。 你统治! – 2010-03-24 21:40:16
我有一个非常类似的问题,我正在使用的核心绘图SDK。如上所述设置“代码签名资源规则路径”解决了我的问题。非常感谢。 – aogan 2010-08-23 23:48:30
你确定你与分布建设,而不是发展,证书和mobileprovision?
是的。代码签名标识设置为我们的分发配置文件,并且代码签名构建步骤显示正确的配置文件名称。 – 2010-02-01 21:42:44
我假设你正在上传一个.zip文件。
我刚刚检查了一个我上传的应用程序,而CFBundleResourceSpecification只在签名版本(即设备版本)中。
是的,上传一个ZIP文件。 – 2010-02-03 17:15:02
当我创建App Store发行版的.mobileprovision文件时,我处于相同的过程中,设备部分显示为灰色,我无法选择任何内容,为什么? – 2010-10-10 20:14:06
你在做任何你的建筑/复制/压缩从命令行吗?如果是这样,你必须非常小心的符号链接。 .app
带有一个子目录作为另一个的符号链接,如果你复制它或压缩它没有正确的标志,它会硬拷贝内容,这与编码签名混淆。
这发生在我身上 - 最糟糕的部分是,ad-hoc构建工作正常,没有符号链接,所以直到应用商店构建时才会发现问题。
通过XCode执行所有构建,并尝试从命令行和(通常)通过Finder的压缩菜单选项压缩这两个文件。 (我看到了一些提及符号链接问题的讨论。) – 2010-02-03 17:16:24
由于其他原因(如我刚刚发现的),此消息可能会发生:如果您的项目中有多个Info.plists,则应用程序上载器可能会发现Info_Plist“错误”并且感到困惑。
这发生在我身上,因为构建的自动化部分是在引入到项目中的包中创建Info.plist。
帽尖到这里的解决方案: http://infinite-sushi.com/2010/08/the-case-of-the-missing-cfbundleresourcespecification/
对于我来说,检查所有的东西(协同设计,图标文件...),但你不能上传应用程序后,尝试删除内置文件。记住复制file.app来压缩你的应用程序。
对我来说,解决方案是创建一个分布式认证: Apple Developer Provisioning Portal。
这当然是向App Store提交*任何内容的必要步骤,但也是一个预期的和有据可查的步骤。这不是原因造成的原因。 – 2011-02-10 23:50:26
你以前能够上传任何东西吗?你确定你的证书全部有效并且没有过期吗? – fbrereto 2010-02-01 21:27:45
另外,你确定你正在为3.1.2构建而不是说3.2测试版? – Aaron 2010-02-01 21:31:46
@fbrereto这是我们的第一个应用程序提交。分发配置文件绝对没有过期。 (我希望如果证书无效,构建的代码步骤不会是绿色的。) – 2010-02-01 21:38:01