Apple M1环境下Xcode 12.4报No such module错误 模拟器无法构建
M1芯片环境下Xcode 12.4 模拟器构建Pods报"No such module" 问题解决
该问题是M1开发环境下的高频共性问题,大量开发者遇到过。在你已经完成项目清理、删除Derived Data、重装Pods等常规排查操作的基础上,可按以下步骤定位解决:
- 重置Xcode运行环境:右键点击「应用程序」中的Xcode图标,选择「显示简介」,勾选「使用Rosetta打开」。该配置常会在系统更新、Xcode版本迭代后被自动重置,是最容易遗漏的排查点
- 修正架构排除的配置范围:不要全局排除arm64架构,仅针对
Any iOS Simulator SDK场景配置arm64排除规则;同时需要同步修改主项目target、所有CocoaPods生成的子依赖target的Build Settings——CocoaPods生成的依赖target不会自动继承主项目的架构配置,仅修改主项目设置无法对依赖生效 - 匹配pod命令的运行架构:在终端执行
sudo arch -x86_64 gem install cocoapods安装适配Rosetta环境的x86版本CocoaPods,回到项目根目录执行arch -x86_64 pod install完成依赖安装,避免默认arm64架构的pod命令生成和模拟器运行环境不匹配的依赖二进制文件 - 切换构建系统适配:打开Xcode设置,将构建系统从默认的New Build System切换为Legacy Build System。Xcode 12.4在M1环境下使用新构建系统时,经常出现模块索引加载异常,触发"No such module"的报错
- 验证环节:完成上述配置后,再次清理Derived Data,选择x86_64架构的模拟器镜像(如iPhone 8)尝试构建,即可正常运行模拟器版本
内容的提问来源于stack exchange,提问作者Vijay Parmar
相关产品推荐
相关产品推荐

