应用程序加载器:错误 ITMS-90502

Application Loader: ERROR ITMS-90502

我正在尝试将新版本上传到 TestFlight,但 Application Loader 给我以下错误:

ERROR ITMS-90502: "Invalid Bundle. Apps that only contain the arm64 slice must also have 'arm64' in the list of UIRequiredDeviceCapabilities in Info.plist."

如果我按照建议将 arm64 添加到 UIRequiredDeviceCapabilities,我会得到另一个错误:

ERROR ITMS-90098: "This bundle is invalid. The key UIRequiredDeviceCapabilities contains value 'arm64' which is incompatible with the MinimumOSVersion value of '8.0'."

我不确定是什么导致了这个问题,也不知道为什么捆绑包只包含 arm64 架构。我检查了项目设置,它们似乎包括其他架构。 ARCHS(架构)设置为 Standard architectures (armv7, arm64)VALID_ARCHS(有效架构)设置为 arm64 armv7 armv7s

自从我尝试上传上一个版本以来已经有一段时间了(~1 个月)。 Apple 的其中一项更新是否破坏了什么? (从那以后我绝对没有触及架构设置,唯一添加的是 UIBackgroundModes = remote-notification)。还是有其他原因导致此错误?

没关系,找到问题了。我用来构建存档的配置 Build Active Architecture Only 设置为 Yes。傻我。

我解决了这个 ERROR-ITMS 90502 错误。

如果您将 Active Architecture Only 设置为 YES,但会出现相同的错误。

但是,如果您的 phone 可以连接到 mac,请断开连接并上传。

就我而言,已解决!

我在发布这篇文章几个月后遇到了同样的错误。我在 Google 上发现了这个帖子,如果其他人通过相同的路径来到这里,ITMS 90502 错误还有另一个原因(共识是这是 late-Oct/early-Nov 2015 年时间表)。

如果您在应用中包含其他框架,它们还必须包含 'arm64' 所需的设备功能。也就是说,这必须在 Info.plist:

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>

如果您使用的是 cocoapods,则必须将键 'UIRequiredDeviceCapabilities' 添加到每个依赖项中。将此 post 安装包含到您的 Podfile 中。

post_install do |installer|
    installer.pods_project.targets.each do |target|
        plist_buddy = "/usr/libexec/PlistBuddy"
        plist = "Pods/Target Support Files/#{target}/Info.plist"

        puts "Add armv7 to #{target} to make it pass iTC verification."

        `#{plist_buddy} -c "Add UIRequiredDeviceCapabilities array" "#{plist}"`
        `#{plist_buddy} -c "Add UIRequiredDeviceCapabilities:0 string armv7" "#{plist}"`
    end
end

就我而言,我有一个: 错误 ITMS-90503 在 UIRequiredDeviceCapabilities 键

中单独使用 arm64(没有 'only')

并且: 在 "Debug" 模式下归档对我有用

我在使用 Xamarin 时遇到了这个问题并最终解决了这个问题。

对我来说,解决方案是确保在构建应用程序时不包含任何调试符号。

在 Xamarin Studio 中,right-click 在项目上 -> 选项。在 "Build" 标题下选择 "Compiler"。检查 "Debug information" drop-down.

清理、重建、重新打包并再次上传,成功了。

另一种方式:

1 - 断开任何测试设备与您的 mac

2 - 存档。

您提到的问题仅在我 iPhone 连接时尝试存档时发生。

如果您在断开连接时存档,此问题就会消失。

这对我有用..

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>armv7</string>
</array>

我在使用 Xamarin 时遇到了同样的问题

我为解决此问题所做的一切都是在您连接真实设备

时将构建类型更改为 Release| iPhone

希望对您有所帮助

在我的例子中,在 Visual Studio 中为 Mac 解决这个问题的方法是在 ios 选项面板中设置 ARMv7 + ARM64 .

如果最近有其他人在为 iOS 11 及更高版本构建时遇到此问题,则此应用程序需要此密钥,您在应用程序中拥有的任何扩展程序也需要此密钥。但是没有必要在任何框架中使用它。

如果您的目标部署目标是 iOS 11.0 或更高版本,您的 info.plist 中必须有 arm64。在Xcode中创建新项目9.x只在UIRequiredDeviceCapabilities下添加armv7,似乎是一个错误。

将您的 info.plistUIRequiredDeviceCapabilities 密钥更新为:

<key>UIRequiredDeviceCapabilities</key>
<array>
    <string>arm64</string>
</array>

Select Generic iOS Device 在 devices/simulators 列表中