升级Xcode9.3(Swift4.1)后导入框架报错:Swift4.0.3模块无法导入
解决Swift版本不兼容导致的Framework导入错误
这个报错的核心原因很明确:你现在用的Xcode 9.3(对应Swift 4.1)无法导入用Swift 4.0.3编译的FrameworkAsesorEnLinea.framework——Swift的不同小版本编译出的模块文件是不兼容的,哪怕语法上变化不大,底层的模块格式已经更新了。删除Derived Data只是清理了项目的编译缓存,没法解决框架本身的版本不匹配问题,给你几个可行的解决办法:
重新编译Framework(最推荐)
如果你能拿到这个Framework的源码,直接用Xcode 9.3重新编译一遍:- 打开Framework的项目,确认当前使用的是Xcode 9.3版本
- 进入项目的
Build Settings,找到Swift Language Version选项,设置为Swift 4.1 - 先清理项目(快捷键
Cmd+Shift+K),再重新编译(Cmd+B) - 把编译生成的新Framework替换掉你项目里旧的版本,之后再清理一次项目的Derived Data,重新运行项目
获取兼容Swift 4.1的Framework版本
如果没有源码,联系提供这个Framework的开发者,让他们用Xcode 9.3(Swift 4.1)编译一个新版本给你,替换到项目中即可临时降级Xcode(备选)
要是上面两个方法都暂时没法实现,你可以降级到Xcode 9.2(对应Swift 4.0.3),这样就能和原来的Framework版本匹配,不过这只是权宜之计,长远来看还是建议升级Framework到兼容Swift 4.1的版本
内容的提问来源于stack exchange,提问作者Mateo G
相关产品推荐
相关产品推荐

