一、报错
- 报错内容大致如下
/xxxx/xxx.xcodeproj Building for iOS, but the linked and embedded framework ‘xxx.framework’ was built for iOS iOS Simulator.
诸如此类,可能有些许不同
二、原因
WWDC 2019
推出XCFramework
启,其实 XCode 11 开始就会有这个问题,但在XCode 11
上一直是 warning 也就没太注意XCode12.3
开始,针对类似于iOS iOS Simulator
这种多平台的包,强制使用XCFramework
架构,否则error
( 好坑啊 )
三、解决
- 这里提供三套方案,前两套比较简单,修改主项目配置即可;第三套是
Apple
建议的方法,也就是重新打包framework
为XCFramework
3.1 Validate WorkSpace
- 启用
Validate WorkSpace
,让XCode
对frameworks
进行自动化管理 - 打开项目路径 -
Build Setting > Build Options > Validate WorkSpace
-
Validate WorkSpace
设置为true
不建议使用,只能做暂时方案,万一哪天
Apple
不开心又把Validate WorkSpace
逻辑改了呢?
3.2 Build System
- 修改编译系统为以前的系统
- 打开
Files > WorkSpace Setting > Build System
- 设置
Build System
如下
不建议使用,总不能一直使用以前的构建系统吧?以后
WWDC
推出新功能了,还是得用新系统,旁边苹果的Deprecated
注释也说明了这点
3.3 Apple 建议方案
- Apple 官方对这个错误做了回复:
- 总结成一句话: 使用
XCFramework
- 这里是回答中生成 XCFramework 的教程
- 这里是回答中生成 XCFramework 的帮助文档
四、总结
Apple
之强势令人叹为观止- 我在 GitHub 新建了一个仓库,正在为大家整理 iOS 学习笔记,欢迎大家 star 支持:https://github.com/Knowledge-Precipitation-Tribe/ios_notes
- 如果方法有效请为我点赞,因为这是我持续输出的最大动力
- 感谢大家的三连 关注支持,我们下期再见~