M1芯片 运行模拟器报错

M1 芯片的 Mac 上,使用 CocoaPods 管理的第三方库时,如果某些库不支持模拟器的 arm64 架构,可能会导致模拟器运行失败。这是因为 M1 芯片默认以 arm64 架构运行模拟器,而某些库可能只支持 x86_64 架构,不支持模拟器的arm64架构。

Xcode需配置

1、Build Settings--选择basic--在User-Defined下点击 ”+“

2、输入 ”EXLUDED_ARCHS“--debug和release选择Any iOs Simulator SDK,输入arm64

3、Build Settings下找到EXcluded Architectures 设置debug和release选择Any iOs Simulator SDK,输入arm64

4、Podfile 加入下面的代码

post_install do |installer|

  installer.pods_project.targets.each do |target|

    target.build_configurations.each do |config|

      # 设置 ARCHS 为 x86_64 和 arm64

      config.build_settings['ARCHS'] = 'x86_64 arm64'

      # 排除 arm64 架构(如果需要)

      if config.name == 'Debug'

        config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'

      end

    end

  end

end

5、重新pod install

6、最后点击xcode的Buildtime(如下面的截图)自动适配代码即可。注:如果没出现就再跑一遍pod install。

上面修改的背景和原因:

M1 芯片的 Mac 使用ARM 架构,而传统的 Mac 和 iOS 模拟器使用x86_64 架构

某些依赖库可能没有完全适配 ARM 架构,导致在 M1 芯片的 Mac 上运行 iOS 模拟器时出现编译错误。

通过排除模拟器环境下的 arm64 架构,可以强制依赖库以 x86_64 架构编译,从而解决兼容性问题。

修改后重新pod install 即可解决问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容