Iphone Can';t将应用程序二进制文件上载到应用程序商店

Iphone Can';t将应用程序二进制文件上载到应用程序商店,iphone,app-store,app-store-connect,Iphone,App Store,App Store Connect,我们终于将我们的第一个iPhone应用提交到应用商店(或尝试提交),但我似乎无法让iTunes Connect接受上传 我尝试通过网站(“您上载的二进制文件无效。签名无效,或者没有使用Apple提交证书进行签名”)和应用程序加载程序(“Info.plist不包含CbundlereSourceSpecification”) 经过大量的阅读(包括)、重读和谷歌搜索,我可以说: 我确信bundle标识符与AppID匹配 有一个Icon.png,它是一个57x57 px png文件,这就是Info.p

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

我尝试通过网站(“您上载的二进制文件无效。签名无效,或者没有使用Apple提交证书进行签名”)和应用程序加载程序(“Info.plist不包含CbundlereSourceSpecification”)

经过大量的阅读(包括)、重读和谷歌搜索,我可以说:

  • 我确信bundle标识符与AppID匹配
  • 有一个Icon.png,它是一个57x57 px png文件,这就是Info.plist中的确切名称
  • 我在做一个设备,而不是模拟器,构建
  • 签名过程成功:构建结果显示了这一点,运行
    codesign-vvv MyApp.app
    表明没有问题
  • ZIP文件的路径中没有奇怪的字符
  • 我删除了build文件夹并多次重新构建二进制文件
现在,在构建的应用程序中,Info.plist确实不包含
CbundlereSourceSpecification
键,但我一点也不清楚该值应该来自何处,或者需要添加什么来实现这一点。(我在苹果的搜索中能找到的唯一参考资料是一些……但是,正如我上面提到的,据我所知,代码签名步骤正在成功。)

有没有人对这个问题有过我没有提到的解释

编辑:以下是构建的代码签名步骤(FWIW)的输出(略经编辑):


你确定你是在使用发行版而不是开发、证书和移动产品进行构建吗?

我假设你正在上传一个.zip文件


我刚刚检查了我上传的一个应用程序,CbundlereSourceSpecification仅在已签名的版本中(即设备构建)。

您是否从命令行进行构建/复制/压缩?如果是这样,你必须非常小心符号链接。
.app
附带一个子目录作为指向另一个子目录的符号链接,如果您复制它或压缩它而没有正确的标志,它将硬拷贝内容,这会干扰代码签名


这发生在我身上——最糟糕的是,没有符号链接的临时构建可以正常工作,因此在应用商店构建之前,你不会注意到问题。

问题似乎是我在应用程序中使用了它,并将其作为附加SDK。我的猜测是XCode被>1 SDK的存在搞糊涂了,因此无法找到默认的ResourceRules.plist

我找到了两个解决方案(好吧,不管怎样,解决办法):

  • 使用“代码签名资源规则路径”生成设置(默认为空)指定XCode应使用的文件路径:$(SDKROOT)/ResourceRules.plist。这是可行的,看起来相当无害,但令人沮丧的是XCode应该能够自己解决这个问题。(我在json框架上的一个文件中找到了这个解决方案。)
  • 不要使用SDK方法。相反,只需将文件直接包含到项目中,并使用本地路径更新
    #import
    语句即可。这就是我最终采用的方法,因为我们做出了一个一般性的决定,将所有外部依赖项都折叠到项目本身中(这样其他开发人员就可以在他们的机器上进行更少的配置来启动和运行)
  • 我不确定这是XCode中的一个bug,还是json框架出了什么问题,但我已经讨论了后者以防万一


    更新,2010年6月30日:我提交的问题已经解决,Brautaset先生计划在项目的下一版本(2.3)中取消对SDK选项的支持。另外,虽然Google代码页目前仍然存在,但这条消息可能是因为另一个原因(正如我今天早上刚刚发现的):如果您的项目中有多个Info.plist,应用程序上载者可能会发现“错误”的Info.plist并感到困惑

    这种情况之所以发生在我身上,是因为构建过程中的一个自动化部分是在项目中引入的捆绑包中创建Info.plist

    请点击此处了解解决方案:

    对于我来说,在检查所有内容(代码设计、图标文件…)但无法上载应用程序后,请尝试删除生成的文件。请记住复制file.app以压缩您的应用。

    对于我来说,解决方案是在以下位置创建分发证书:
    .

    您以前可以上传任何内容吗?你确定你的证书都有效并且没有过期吗?另外,你确定你正在构建3.1.2版,而不是说3.2测试版吗?@fbrereto这是我们第一次提交应用程序。分发配置文件肯定还没有过期。(我希望如果证书无效,构建的代码设计步骤不会是绿色的。)@Tegeril还没有安装测试版。正在为3.1.2构建,部署目标设置为3.0。是。代码签名标识设置为我们的分发配置文件,代码签名生成步骤显示正确的配置文件名称。通过XCode执行所有生成,并尝试从命令行和(通常)通过Finder的压缩菜单选项压缩。(我看到很多关于符号链接的讨论。)我太爱你了,伙计。刚刚被同一个问题击中,撞了我将近一个小时。我还安装了Xcode 3.2.2 beta版,因此开始考虑重新安装所有。你太牛了我使用的core plot SDK也有类似的问题。如上所述设置“代码签名资源规则路径”可以解决我的问题。非常感谢。当我为App Store分发创建.mobileprovision文件时,我也处于相同的过程中。设备部分变灰了,我无法选择任何设备,为什么会这样?这当然是向App Store提交任何内容的必要步骤,但是