fair 载体工程iOS运行报错解决

232 阅读1分钟

FAIR极速体验:fair.58.com/zh...

开发环境:

Xcode 14.2
Flutter 3.0.5
Cocoapods 1.12.1

报错1:

Error output from CocoaPods:
↳

    [!] Automatically assigning platform `iOS` with version `9.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.

Error running pod install
Error launching application on iPhone 14 Pro.

修改Podfile

platform :ios, '12.0'

报错2:

    ../../.pub-cache/git/fair-545ba3db0c04476fe3de0006c869b70c16665d7a/flutter_version/flutter_3_3_0/lib/src/widgets/$$w.dart:1568:49: Error: Member not found: 'Shortcuts.manager'.
      'Shortcuts.manager': (props) => Shortcuts.manager(
                                                ^^^^^^^
    Failed to package /Users/a58/Desktop/carrier_project_name.
    Command PhaseScriptExecution failed with a nonzero exit code

因为使用flutter版本为3.0.5所以修改fair代码json转换widget的fair_version pacakge:

    dependency_overrides:
      fair_version:
        git:
          url: https://github.com/wuba/fair.git
          ref: main
          path: flutter_version/flutter_3_0_0

报错3:

    Error (Xcode): Building for iOS Simulator, but linking in dylib built for iOS, file '/Users/a58/.pub-cache/git/fair-545ba3db0c04476fe3de0006c869b70c16665d7a/fair/ios/FairDynamicFlutter/Products/FairDynamicFlutter.framework/FairDynamicFlutter' for architecture arm64

    Could not build the application for the simulator.
    Error launching application on iPhone 14 Pro.

解决方法:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |configuration|
      configuration.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
    end
  end
end

关于iOS配置的这个老大难错误,也是非常常见:

解决方法就是pod库使用时,添加限制,参考文章:

M1设备的Xcode编译问题深究

或者是组件的发布者podspec中添加限制,参考文章:

iOS组件化避坑心得