Xcode 10 GM-提交到App Store Connect时无效的二进制体系结构?

时间:2018-09-12 22:04:44

标签: ios xcode

我有一个支持iOS 11/12和watchOS 4/5的iOS和watchOS应用。我一直在使用Xcode 10 Beta将构建提交到App Store Connect for TestFlight,而没有任何问题。今天,我使用Xcode 10 GM提交了一个构建版本,并且收到了以下电子邮件:

  

亲爱的开发人员,

     

我们发现您的应用最近交付“ littlefeed”存在一个或多个问题。请更正以下问题,然后重新上传。

     

无效的二进制体系结构-iOS 3.0引入了对多种二进制体系结构的支持。如果二进制文件是针对多种体系结构构建的,则Info.plist必须具有MinimumOSVersion密钥,其值至少为3.0。此外,如果您的应用程序旨在支持早期的iPhone和iPod touch机型,则您的应用程序必须至少包含armv6二进制文件;除非Info.plist UIRequiredDeviceCapabilities键或MinimumOSVersion键的值等于或大于4.3,否则只有armv7的“瘦”二进制文件将不被接受。

     

有关更多信息,请参见http://developer.apple.com/iphone/library/qa/qa2010/qa1707.html上的技术问答QA1707。

     

最诚挚的问候,

     

App Store团队

问题是,此信息过时了。 MinimumOSVersion密钥早已被弃用; armv6是与iOS 11+设备无关的体系结构;与QA1707的链接已断开;等等。Google和Stack Overflow上的所有相关问题都可以追溯到2012年或更早,所以我实际上不知道问题是什么。我最好的解决方案是,它与Apple Watch Series 4现在是64位处理器这一事实有关,也许我需要配置我的手表应用程序并通过某种方式来监视手表扩展目标? >

如果有人有任何想法,将不胜感激。

3 个答案:

答案 0 :(得分:8)

我们遇到了相同的问题,并通过将watchextension和watchapp的部署目标设置为3.0(或更高)来解决了该问题。现在,还要确保手表中使用的每个框架都将部署目标也设置为3.0(或更高)。因此,如果您使用cocoapods(或任何其他依赖项管理器),请确保通过cocoapods安装的框架的监视目标也设置为3.0。

答案 1 :(得分:4)

我有点相同,但是对我来说,将二进制文件上传到appStoreConnect时出错:

  

错误ITMS-90081:“此捆绑包无效。为更多内容而构建的应用程序   一种架构需要iOS部署目标为3.0或   以后。”

它需要手动检查两个project.pbxproj文件(主项目和容器)中的每个WATCHOS_DEPLOYMENT_TARGET(并将其中一些更改为3.0)

答案 2 :(得分:2)

要使为Pods中的所有依赖关系设置正确的WATCHOS_DEPLOYMENT_TARGET更加容易,请将其添加到Podfile的末尾。如果您需要更高版本作为部署目标,则可以替换3.0,二进制验证的最小值为3.0

post_install do |installer_representation|
    installer_representation.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if config.build_settings['SDKROOT'] == 'watchos'  
              config.build_settings['WATCHOS_DEPLOYMENT_TARGET'] = '3.0'  
            end
        end
    end
end