【问题标题】:Application Loader: ERROR ITMS-90502应用程序加载器:错误 ITMS-90502
【发布时间】:2015-08-18 01:19:16
【问题描述】:

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

错误 ITMS-90502:“捆绑包无效。仅包含 arm64 的应用程序 slice 的列表中还必须有 'arm64' Info.plist 中的 UIRequiredDeviceCapabilities。”

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

错误 ITMS-90098:“此捆绑包无效。密钥 UIRequiredDeviceCapabilities 包含值“arm64”,即 与“8.0”的 MinimumOSVersion 值不兼容。”

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

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

【问题讨论】:

    标签: ios xcode app-store-connect application-loader


    【解决方案1】:

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

    【讨论】:

    • 嗨,所以我们应该将Build Active Architecture Only 设置为NO 以用于DebugRelease
    • 另外,你的 Info.plist UIRequiredDeviceCapabilities 中的架构是什么?
    • @KarenAnne Build Active Architecture Only 应该在用于创建存档的目标的构建设置中设置。我想应该是Release。 UIRequiredDeviceCapabilities 包含一个项目,armv7
    • Build Active Architecture for Debug 是 YES,对于 Release 是 NO?
    • 对于 Xamarin Studio 6.0,我必须在 iOS Build 首选项窗格中取消选中 Enable device-specific builds
    【解决方案2】:

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

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

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

    在我的情况下,解决了!

    【讨论】:

    • 这是典型的 XCode 废话:几分钟前连接设备时从未遇到过这个问题
    • 拔下我的 iPad 为我解决了这个问题。非常感谢! (我正在使用 Xamarin)
    【解决方案3】:

    在发布此帖子几个月后,我遇到了同样的错误。我在 Google 上找到了这个帖子,如果其他人通过相同的路径来到这里,ITMS 90502 错误还有另一个原因(共识是这是 2015 年 10 月下旬/11 月上旬时间范围内的新要求) .

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

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

    【讨论】:

      【解决方案4】:

      如果您使用的是 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
      

      【讨论】:

      • 今天发现这个解决方案适用于我的情况,但是我需要将 arm7 替换为 arm64。 iTunes Connect 直到今晚都在接受我的应用程序,但后来我得到了上述错误,这个带有架构替换的 sn-p 修复了错误。
      【解决方案5】:

      就我而言,我有一个: 错误 ITMS-90503 在 UIRequiredDeviceCapabilities 键中单独使用 arm64(没有“仅”)

      并且: 以“调试”模式存档对我有用

      【讨论】:

      • 这不是解释。可能与Debug中默认为“Yes”,Release中默认为“No”的“Build for active architecture only”的默认值有关。 IE。可能你只构建了 64 位包。
      【解决方案6】:

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

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

      在 Xamarin Studio 中,右键单击项目 -> 选项。在“构建”标题下选择“编译器”。检查“调试信息”下拉菜单。

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

      【讨论】:

        【解决方案7】:

        另一种方式:

        1 - 从你的 mac 断开任何测试设备

        2 - 存档。

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

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

        【讨论】:

          【解决方案8】:

          这对我有用..

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

          【讨论】:

            【解决方案9】:

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

            当你连接真实设备时,我所做的一切都是为了解决这个问题,将构建类型更改为Release| iPhone

            希望有帮助

            【讨论】:

              【解决方案10】:

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

              【讨论】:

                【解决方案11】:

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

                【讨论】:

                  【解决方案12】:

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

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

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

                  【讨论】:

                  • 这是给我的。我将最低支持从 iOS 10 切换到 iOS 11,需要更改此设置才能提交到商店。
                  • 奇怪的是,现在这在审查过程中被捕获而不是上传。
                  【解决方案13】:

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

                  【讨论】:

                    猜你喜欢
                    • 2016-01-14
                    • 2018-08-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-12-12
                    • 2014-02-23
                    • 1970-01-01
                    • 2018-06-02
                    相关资源
                    最近更新 更多