当前位置:网站首页>XCODE12 在使用模拟器(SIMULATOR)时编译错误的解决方法
XCODE12 在使用模拟器(SIMULATOR)时编译错误的解决方法
2022-08-05 08:45:00 【今人不见古时月,今月曾经照古人】
Xcode12 上使用模拟器编译项目时,出现错误。同样的代码在Xcode11则不会有问题。Xcode12 在使用模拟器(Simulator)时编译错误的解决方法
一些错误如下:
No such modules (import installed pods)
Cocoapods post-build step with the script they install issue -> Pods/Target Support Files/Pods-All-Apps-XXX/Pods-All-Apps-XXX-frameworks.sh: line 141: ARCHS[@]: unbound variable
‘ObjCheaderFile.h’ file not found. (ObjC Headers in bridging file)



为什么会出现这些错误?
在查阅Xcode12的升级文档,我们找到如下内容:

1、Xcode11 项目中模拟器会编译为x86_64,但Xcode12的模拟器基于苹果Apple Silicon architecture执行,需要编译为arm64运行在模拟器上。许多第三方库(如Firebase,AFNetworking等)并未提供Xcode12版本的更新支持,导致报错。
2、Xcode12 开始移除编译设置(Bulid Settings)中的 Valid Architectures的宏定义。当项目使用Xcode12打开时候,会在User-Defines(项目的Bulid Settings里面)中自动生成VALID_ARCHS宏定义。如果旧项目存在于此冲突的宏定义,会导致编译失败。
如何修复?
第一步:添加 arm64 到 simulator architecture 中。主项目和pod项目都需要。
在主项目和pod项目的PROJECT的Build Settings中,搜索Excluded Architecture ,添加 Any iOS Simulator SDK,value填入 arm64


注意:在pod项目的build setting是cocopod自动生成的,本次修改在下次更新第三方库时候会被覆盖,可以添加脚本在Podfile中,防止每次安装和更新都需要手动修改。
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
第二步:在主项目和pod项目的PROJECT的Build Settings中,删除VALID_ARCHS(整个删除,不能只删除value留下Key

本文转自他人!
原文链接:Xcode12 在使用模拟器(Simulator)时编译错误的解决方法_HDLX刘乔泓的博客-CSDN博客_simulator模拟器error030084
边栏推荐
猜你喜欢
随机推荐
Linux导出数据库数据到硬盘
手机上流行的各类谜语
MM上街前的折腾(有趣)
[Repost] Marry a man must marry a man whose salary is at least 3571.4 yuan higher than yours
CROS and JSONP configuration
树状数组模版+例题
DPU — 功能特性 — 安全系统的硬件卸载
pnpm 是凭什么对 npm 和 yarn 降维打击的
Codeforce 8.1-8.7做题记录
Spark cluster deployment (third bullet)
MySQL database error The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)
[Structural Internal Power Cultivation] The Mystery of Enumeration and Union (3)
Data source object management Druid and c3p0
8.4模拟赛总结
Insights in programming
生命的颜色占卜
动态内存开辟(C语言)
写出了一个CPU占用极高的代码后引发的思考
The Secrets of the Six-Year Team Leader | The Eight Most Important Soft Skills of Programmers
sql server收缩日志的作业和记录,失败就是因为和备份冲突了吗?








