我们终于将我们的第一个iPhone应用程序提交到应用程序商店(或尝试),但我似乎无法让iTunes Connect接受上传。
我尝试过这两个网站(“您上传的二进制文件无效。签名无效,或者没有使用Apple提交的证书签名。”)和Application Loader(“Info.plist不会包含CFBundleResourceSpecification“)。
经过大量阅读(包括questions like these),重新阅读和谷歌搜索,我可以这样说:
codesign -vvvv MyApp.app
表示没有问题。现在,在构建的应用程序中,Info.plist确实不包含CFBundleResourceSpecification
键,但对于我来说,这个值应该来自哪里,或者我还需要什么,这一点都不清楚添加使这项工作。 (我使用Apple的搜索找到的唯一参考是code signing release notes ...但是,正如我上面提到的,代码签名步骤是成功的,据我所知。)
有没有人遇到过这个我尚未提及的问题的解释?
编辑:以下是构建代码签名步骤(稍微编辑)的输出,FWIW:
code signing screenshot http://img70.yfrog.com/img70/8988/codesign.png
答案 0 :(得分:10)
问题似乎是我在我的应用中使用json-framework,并将其作为每the instructions in the wiki的额外SDK包含在内。我的猜测是XCode对> 1 SDK的存在感到困惑,因此找不到它应该的默认ResourceRules.plist。
我找到了两个解决方案(好的,解决方法,无论如何):
$(SDKROOT)/ResourceRules.plist
。这是有效的,似乎相当无害,但在XCode应该能够自己解决这个问题的意义上令人沮丧。 (我在json-framework上的very old issue字段中找到了这个解决方案。)#import
语句。这是我最终采用的方法,因为我们做出了将所有外部依赖项折叠到项目本身的一般决策(以便其他开发人员在他们的计算机上进行的配置较少,以便启动和运行)。我不确定这是否是XCode中的错误,或json-framework有什么问题,但我对后者filed an issue以防万一。
更新,2010年6月30日:我提交的问题已经结束,Brautaset先生计划在项目的下一个版本(2.3)中删除对SDK选项的支持。此外,code now lives on GitHub虽然Google代码页目前仍然存在。
答案 1 :(得分:1)
对我来说,在检查完所有内容(代码签名,图标文件......)但无法上传应用程序后,请尝试删除内置文件。请记住复制file.app以压缩您的应用。
答案 2 :(得分:0)
您确定要使用分发构建,而不是开发,证书和移动设备吗?
答案 3 :(得分:0)
我假设您正在上传.zip文件。
我刚检查了我上传的应用,CFBundleResourceSpecification仅在签名版本中(即设备版本)。
答案 4 :(得分:0)
您是否正在从命令行进行任何构建/复制/压缩?如果是这样,你必须非常小心符号链接。 .app
带有一个子目录作为另一个的符号链接,如果你复制它或没有正确的标记拉链,它将硬拷贝内容,这与代码签名混淆。
这件事发生在我身上 - 最糟糕的是,ad-hoc版本在没有符号链接的情况下工作正常,所以在应用商店构建之前你不会注意到这个问题。
答案 5 :(得分:0)
此消息可能由于其他原因而发生(正如我刚刚在今天早上发现的那样):如果您的项目中有多个Info.plists,则应用程序上传程序可能会发现“错误的”Info.plist并感到困惑。
这发生在我身上,因为构建的自动部分是在项目中创建了一个Info.plist。
提示解决方案: http://infinite-sushi.com/2010/08/the-case-of-the-missing-cfbundleresourcespecification/
答案 6 :(得分:0)
对我而言,解决方案是在以下位置创建分发认证: Apple Developer Provisioning Portal