美文网首页
升级Xcode14.x 后出现的那些坑

升级Xcode14.x 后出现的那些坑

作者: Show_Perry | 来源:发表于2023-05-17 17:21 被阅读0次
    1. 升级Xcode 14后运行工程报错 bundle targets' 'Signing Certificate' to 'Sign to Run Locally',这是因为Bundle签名不一致导致,一种解决办法是保持签名和主工程一致,一种是不签名。个人推荐第二种,解决办法:在podfile中添加下面脚本:
    post_install do |installer|
        installer.pods_project.targets.each do |target|
          if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
            target.build_configurations.each do |config|
                config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
            end
          end
        end
    
      end
    

    参考:stackoverflow

    1. 升级Xcode14.3工程运行报错。File not found:arc/libarclite_iphoneSimulator 原因是 Xcode 14.3开始,增加了最低版本支持 Minimum Deployments 11.0,解决办法:在podfile中添加下面脚本:
    post_install do |installer_representation|
      #由于 Xcode 14.3开始,增加了最低版本支持 Minimum Deployments 11.0,File not found:arc/libarclite_iphoneSimulator
      installer_representation.generated_projects.each do |project|
        project.targets.each do |target|
          target.build_configurations.each do |config|
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
          end
        end
      end
    end
    
    
    1. 升级Xcode14.3后执行 pod lib lint 报错:xcodebuild: Returned an unsuccessful exit code。往前查看fail的地方原因是libarclite_iphoneos.a,一看这个错误和2中提到的是类似的,原因是你依赖的库支持的最低版本是11以下。参考官方的一个issue:Xcode 14.3 has pod lib lint fail ,目前Cocoapods也没好的解决办法。要么升级库支持11以上,要么把Xcode版本降级至14.2。目前我选择了降级Xcode,这个很实硬伤,让我们发布新组件如果有依赖第三方已经没有维护的组件很是苦恼,感觉官方也没办法解决。

    2. 升级Xcode14+ 后执行 pod lib lint 报错:building for iOS Simulator, not found for architecture arm64这个错误让我很是无语,它报错的第三方库xxx.framework,查看它支持的架构有:are: armv7 i386 x86_64 arm64是包含arm64的,而且直接放到工程中用xcode14+打包ipa也没问题,就是pod lib lint报错,后面再排查了下把报错的内容发现一个关键信息:building for iOS Simulator, but linking in object file built for iOS

    通过错误描述,在为 iOS 模拟器编译过程中,链接的这个库时找不到 arm64 架构。我们知道早前模拟器仅支持 i386 x86_64 架构即可,现在竟然在模拟器上需要 arm64架构了,应该是为了支持 Apple siliconM1正是 arm 架构,那 M1 上的模拟器自然就是需要 arm64 架构的了。目前看CocoaPods也有人遇到了类似问题:Error in PodSpec Validation due to architectures 貌似很早版本就有人遇到了,应该我刚好需要把这个framework引入组件中在Xcode14中遇到。
    解决办法:
    a. 修改 podspec:

    s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
    s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
    

    b. pod lib lint跟上--skip-import-validation

    相关文章

      网友评论

          本文标题:升级Xcode14.x 后出现的那些坑

          本文链接:https://www.haomeiwen.com/subject/iimisdtx.html