应用程序加载器:ERROR ITMS-90502

时间:2015-06-03 17:22:47

标签: ios xcode itunesconnect application-loader

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

  

错误ITMS-90502:"无效的捆绑包。仅包含arm64的应用   切片还必须有'arm64'在列表中   已获取Info.plist中的设备功能。"

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

  

错误ITMS-90098:"此捆绑包无效。钥匙   UIRequiredDeviceCapabilities包含价值' arm64'是的   与' 8.0'的最小OSVersion值不兼容。"

我不确定导致此问题的原因以及为什么bundle只包含arm64架构。我检查了项目设置,它们似乎包含其他架构。 ARCHS(架构)设置为Standard architectures (armv7, arm64)VALID_ARCHS(有效架构)设置为arm64 armv7 armv7s

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

13 个答案:

答案 0 :(得分:38)

没关系,发现了问题。我用于构建存档的配置已将Build Active Architecture Only设置为Yes。傻我。

答案 1 :(得分:12)

我在发布这几个月后遇到了同样的错误。我在谷歌上发现了这个帖子,如果有其他人来到这里,也有同样的道路,ITMS 90502错误还有另一个原因(一致认为这是2015年10月末/ 11月初的新要求的时间安排)。

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

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

答案 2 :(得分:10)

如果您正在使用cocoapods,则必须将键“UIRequiredDeviceCapabilities”添加到每个依赖项。将此安装后的内容包含在您的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

答案 3 :(得分:6)

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

如果您仅将Active Architecture设置为YES,但会显示相同的错误。

但是,如果您的手机可以连接到Mac,请断开连接并上传。

就我而言,已经解决了!

答案 4 :(得分:6)

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

将您的info.plist UIRequiredDeviceCapabilities密钥更新为:

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

答案 5 :(得分:2)

我使用Xamarin解决了这个问题并最终解决了这个问题。

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

在Xamarin Studio中,右键单击项目 - &gt;选项。在“Build”标题下选择“Compiler”。检查“调试信息”下拉列表。

清理,重建,重新包装,然后重新上传,并且有效。

答案 6 :(得分:2)

另一种方式:

1 - 断开Mac上的所有测试设备

2 - 存档。

你提到的问题,只发生在我连接iPhone时我试图存档的时候。

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

答案 7 :(得分:2)

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

答案 8 :(得分:1)

在我的情况下,我有一个: 错误ITMS-90503 在UIRequiredDeviceCapabilities键中单独使用arm64(仅使用&#39; only&#39;)

和: 存档&#34;调试&#34;模式为我工作

答案 9 :(得分:1)

这对我有用..

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

答案 10 :(得分:1)

我和Xamarin有同样的问题

在连接真实设备

时,我所做的就是修复问题,将构建类型更改为Release| iPhone

希望这个帮助

答案 11 :(得分:0)

就我而言,在Visual Studio for Mac中解决这个问题的方法是在ios选项面板中设置 ARMv7 + ARM64

答案 12 :(得分:0)

在归档之前,在设备/模拟器列表中选择Generic iOS Device