无效的二进制文件 iTunes Connect。

34
可能重复:无效的iPhone应用程序二进制文件 我对此感到非常烦恼!!!
我尝试了所有方法,每次提交我的应用程序到iTunes Connect时,它总是显示:
上传已接收
(2分钟后)
无效二进制文件
这让我发疯了, 我已经:
- 清理了所有构建 - 制作了新的Entitlement.plist - 检查了是否使用了发布配置。

5
+1 这样你就可以使用一些积分来进行头发移植了 :P - Adrian
5个回答

34

请检查与您的苹果开发者帐户相关联的邮箱,苹果会将一封包含诊断信息和如何解决问题的电子邮件发送到您的邮箱。

对于我来说,苹果发送了以下诊断信息。我实际上从未接触过iCloud,这真的很令人困惑。毕竟,我创建了一个没有通配符字符的新应用程序ID,然后创建了一个新的发布配置文件,并签署了我的应用程序,最后提交给苹果,结果是成功的。

代码签名授权无效 - 您的应用程序包签名包含不受支持的授权值。对于com.apple.developer.ubiquity-container-identifiers授权,数组中的第一个值必须由Apple在供应配置文件中提供的前缀加上包标识符后缀组成。包标识符必须与您的应用程序或其他允许您用作iCloud容器标识符的应用程序的包标识符相匹配。

具体来说,在ProductName中com.apple.developer.ubiquity-container-identifiers密钥的“K8FN29QYP2.*”值不受支持。

代码签名授权无效 - 您的应用程序包签名包含不受支持的授权值。

具体来说,在ProductName中com.apple.developer.ubiquity-kvstore-identifier密钥的“K8FN29QYP2.*”值不受支持。


5
谢谢,第一句话让我省了些时间。 :) - CGee
2
另外,如果您使用 Gmail,请检查您的垃圾邮件文件夹。我的来自 Apple 的错误信息被过滤到那里了。 - Jonathan Berger
电子邮件发送很快。我收到了无效的图像路径错误提示 - 在关键字“CFBundleIconFile”下引用的路径中找不到图像icon.png。 - Henry

9

我也曾经遇到过这种问题,在苹果商店得到了这样的回复:

亲爱的开发者,

我们发现您最近提交的二进制文件存在一个或多个问题,涉及“应用名称”。在审核您的应用之前,必须纠正以下问题:

无效的图标路径 - 在"CFBundleIcons"键下引用的路径上未找到图标:icon114.png

一旦纠正了这些问题,请转到版本详细信息页面,然后单击“准备上传二进制文件”按钮。继续提交过程,直到应用程序状态为等待上传,然后使用“应用程序加载器”上传已更正的二进制文件。

此致,

iTunes Store团队


1
我已经阅读了https://dev59.com/2nVD5IYBdhLWcg3wOo5h中的所有答案。这是唯一一个有来自苹果反馈的答案。我的问题是因为我在Info.plist中引用了不存在的图像,通过删除这些引用得到了解决。 - wanghq

3

我通过在我的entitlements plist中添加两个新的键 - application-identifier和keychain-access-groups来解决了这个问题:

<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>T9YRD11G97.com.duncancampbell.fontagious</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>T9YRD11G97.com.duncancampbell.fontagious</string>
    </array>
</dict>
</plist>

我从配置文件中的AppID得到了"T9YRD11G97",从iTunesConnect中的BundleID得到了"com.duncancampbell.fontagious"。希望这能帮到你。

1

当尝试更新我的应用时,我也遇到了这个问题。自从我上次提交以来,我应用的唯一真正变化就是添加了iCloud支持。我怀疑我的授权有问题,而且我从itunesconnect@apple.com提交机器人收到的错误邮件十分可疑。相关部分如下:

Specifically, value "XXXXXXXXXXX.com.mydomain.myappmame" for key
"com.apple.developer.ubiquity-container-identifiers" in 
MyAppName is not supported.

我在这里对应用程序/域名/团队ID进行了匿名处理,分别为MyAppName/mydomain.com/XXXXXXXXXX。请注意,投诉中说“XXXXXXXXXX.com.mydomain.myappmame”是不正确的。确实是不正确的。应该是“myappname”,而不是“myappmame”,其中'm'应该是'n'。我查看了我的项目中的授权文件,它是正确的。我查看了提交到商店的应用程序包中包含的授权文件,它也是正确的。我解压了我提交到商店的zip文件,那里的授权文件也是正确的。因此,很明显这个字符替换是在应用程序提交被App Store接受之后发生的。

毫无疑问,这个问题并不会影响每个人,否则就会有大规模的抗议。因此,我认为我的应用程序可能有一些“特殊”的东西,会引发自动化App Store提交处理中的错误。为了验证,我从头开始创建了一个新的空应用程序,启用了iCloud授权,并使用新的应用程序标识符将其提交到App Store。它被接受并且状态变为“等待审核”。所以它通过了审核。(我立即拒绝了二进制文件,这样它就不会被审核:)

我设法通过更改我的授权文件来解决这个问题:

<plist version="1.0">
<dict>
    <key>com.apple.developer.ubiquity-container-identifiers</key>
    <array>
        <string>$(TeamIdentifierPrefix)com.mydomain.myappname</string>
    </array>
</dict>
</plist>

转换为:

<plist version="1.0">
<dict>
    <key>com.apple.developer.ubiquity-container-identifiers</key>
    <array>
        <string>XXXXXXXXXX.com.mydomain.myappname</string>
    </array>
</dict>
</plist>

我原本希望在 App Store 中执行团队标识符前缀的任何代码都是罪魁祸首,并且以某种方式破坏了字符串中更远的字符。通过自己进行替换,也许就不会发生损坏,我的应用程序就可以通过了。惊喜!它奏效了。

我浪费了一整天的时间来解决这个问题,但还没有收到苹果支持的回复。但这有点学术性,因为我的应用程序现在正在等待审核。但我仍然想知道是什么原因导致了这个问题,并且已经被苹果修复了。如果我找到了答案,我会更新这篇文章。


我遇到了无效的构建问题。我有一个应用程序,它依赖于我的框架,其bundleID为(com.abc.sample1),并已提交到应用商店。现在我正在尝试上传第二个包含相同框架和相同bundle ID的应用程序到iTunes Connect,但它显示为无效构建。如果我将框架的bundle ID更改为已上传的其他ID,则可以正常工作,但不能使用相同的ID。我想知道是否可以制作一种通用类型的构建来上传。 - djay

0
在我的情况下,我扩展了 CFBundleIcons 字典,然后检查了 CFBundleIconFiles 中的图标名称。那里是我的图标的旧名称,所以我更新了它,这对我起作用了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接