无法将应用程序二进制文件上载到App Store

Six*_*tto 5 iphone itunesconnect app-store

我们终于将我们的第一个iPhone应用程序提交到应用程序商店(或尝试),但我似乎无法让iTunes Connect接受上传.

我尝试过这两个网站("您上传的二进制文件无效.签名无效,或者没有使用Apple提交证书签名.")和Application Loader("Info.plist不包含CFBundleResourceSpecification ").

经过大量阅读(包括这些问题),重新阅读和谷歌搜索,我可以这样说:

  • 我确信捆绑标识符与AppID匹配.
  • 有一个Icon.png,它是一个57x57像素的PNG文件,这是Info.plist中的确切名称.
  • 我正在做一个设备,而不是模拟器,构建.
  • 签名过程成功:构建结果显示此内容,并且运行codesign -vvvv MyApp.app表明没有问题.
  • ZIP文件的路径中没有奇怪的字符.
  • 我已经删除了build文件夹并重新构建了很多次二进制文件.

现在,确实在构建的应用程序中,Info.plist不包含CFBundleResourceSpecification密钥,但是对于我来说,这个值应该来自哪里,或者我还需要添加什么才能使其工作.(我可以使用Apple的搜索找到的唯一参考是一些代码签名发布说明 ......但是,正如我上面提到的,代码签名步骤是成功的,据我所知.)

有没有人遇到过这个问题的解释,我还没有提到过?

编辑:这是构建代码签名步骤FWIW的(略微编辑)输出:

代码签名截图http://img70.yfrog.com/img70/8988/codesign.png

Six*_*tto 10

问题似乎是我在我的应用程序中使用json-framework,并根据wiki中的说明将其作为附加SDK包含在内.我的猜测是,XCode对> 1 SDK的存在感到困惑,因此找不到它应该的默认ResourceRules.plist.

我找到了两个解决方案(好的,解决方法,无论如何):

  1. 使用"代码签名资源规则路径"构建设置(默认情况下为空)来指定XCode应使用的文件的路径:$(SDKROOT)/ResourceRules.plist.这有效,并且看起来相当无害,但在XCode应该能够自己解决这个问题的意义上令人沮丧.(我在json-framework上提交了一个非常古老的问题中找到了这个解决方案.)
  2. 不要使用SDK方法.相反,只需将文件直接包含到项目中,然后#import使用本地路径更新语句.这是我最终采用的方法,因为我们做出了将所有外部依赖项折叠到项目本身的一般决策(这样其他开发人员就可以在他们的机器上进行更少的配置来启动和运行).

我不确定这是否是XCode中的错误,或json-framework有什么问题,但我已经在后者上提出了一个问题以防万一.

更新,2010年6月30日:我提交的问题已经结束,Brautaset先生计划在项目的下一个版本(2.3)中删除对SDK选项的支持.此外,代码现在仍然存在于GitHub上,尽管Google Code页面目前仍然存在.