Xcode 15 项目编译报错:Could not find module xxx for target x86_64-apple-ios-simulator found arm64-apple-ios-simulator
0x00 前言
自从换了 M 芯片的 MacBook Pro,以前在旧款 Intel 芯片的 MacBook Pro 上创建的项目,总是会出现编译报错的情况,相当得烦人,但是 M 芯片以后肯定是发展趋势。
以前出现过旧项目运行起来,修改了一些代码之后,直接重新运行(不杀死模拟器上正在运行的 App 的情况下),会出现模拟器黑屏,Xcode 运行不上去的问题。我自己琢磨出来的解决办法是:在 M 芯片的 MacBook Pro 上新建一个项目,然后把旧项目转移过去,发现不会出现再次运行的黑屏情况。
好了,说了一个题外话,接下来讲讲本文的主要问题,出现这个情况的时候,经过我的排除,发现是在用 CocoaPods 集成了 Bugly 之后,编译报错的,去掉 Bugly 的 Pod,就不会有这个问题,并且是运行到模拟器上才会出现,运行到真机并不会有这个问题,但是有时候并不想只能在真机上测试,所以在一段时间之后,打算解决下这个问题。
当然,其他的一些第三方库也会导致这个问题。
0x01 解决办法
修改项目的 Project
和 Targets
里面的 Build Settings
中的 Excluded Architectures
,展开之后,在 Debug
和 Release
上各添加一个子项,然后选择 Any iOS Simulator SDK
,设置值为 arm64
,如下图所示:
两个地方都需要这么改。
然后在 Podfile
里面添加如下代码:
1 | post_install do |installer| |
然后在终端里面,cd
到项目根目录,运行一下 pod install
,就可以编译并运行到模拟器成功了。
网上看到说,如果需要运行到真机,需要将上面的修改都恢复之后才行,但是在我按上面的修改运行到模拟器成功之后,再运行到真机,发现也还是可以运行的,说明并不需要恢复。
原因是其实我们修改的都是针对模拟器的,比如修改的 Build Settings
中的 Any iOS Simulator SDK
,Podfile
中的 sdk=iphonesimulator*
,都是针对模拟器的,所以应该是不需要恢复的。