x86_64-apple-ios-simulator

217 阅读2分钟

如果发现你的项目无法使用模拟器开心的编译,那么恭喜你。这篇文章将精准的解决你的遭遇。

x86_64-apple-ios-simulator,主要集中出现M1芯片的Mac设备中。

arduino
 代码解读
复制代码
Could not find module 'ImagePicker' for target 'x86_64-apple-ios-simulator'; found: arm64, arm64-apple-ios-simulator

解决方案一

在下图位置添加 arm64。 搜索 Excluded Architectures

示例图.png

解决方案二

在Podfild中,添加佐料。在文件的最下方添加如下内容:

arduino
 代码解读
复制代码
post_install do |installer|
  
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
  
  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
      end
    end
  end
end

解决方案三,终究必杀技 Version 16.2 (16C5032a)没找到

M1电脑Xcode15模拟器使用Rosetta运行解决方案,如图所示:

image.png

为什么推荐使用Rosseta模式?

网上介绍的使用配置xcode 模拟器执行架构模式改为arm64的方案,并不能完全解决所有问题,比如项目中如果使用了某个静态库,而该静态库打包模拟器的时候并没有支持arm64j架构,那你还是会编译不过。虽说使用arm64运行模拟器会充分发挥M1芯片的优化,性能更高点,但一些老的三方库(比如Cordova)不支持也会导致整个项目跑不起来。
另一个缺点就是你修改之后提交代码之后,其他同时使用intel芯片的又无法使用arm64架构的模拟器了,所以这块代码还不能提交以免影响其他同事。

所以终极解决方案还是使用Rosetta运行,这种模式是将arm64指令转成intel芯片的x86_64指令集,性能上会差一点,但对于M1芯片的电脑来说也感受不出来,这种方案是通用方案。

作者:iOS阿玮
链接:juejin.cn/post/731654…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。