iOS 升级第三方库 Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibility50

1,915 阅读1分钟

xcode 汇编OC和swift的静态库报错 报错的原因是因为没有Swift的运行环境,xcode不会自动创建Swift的运行环境的,所以新建一个Swift文件即可

Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibility50
Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibility51
Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibility56
Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibilityConcurrency
Undefined symbol: __swift_FORCE_LOAD_$_swiftCompatibilityDynamicReplacements
Linker command failed with exit code 1 (use -v to see invocation)

解决方案
oc工程中使用swift的第三方库framework源码,结果oc工程中没有一个swift文件,导致编译报错。

解决方案:建立一个swift文件(空的文件也可以)就可以,会自动生成bridge桥接文件。

允许 target 使用 swift 代码 ⚠️开启这个配置后 Swift 的标准库将能够在该项目使用(使用 oc和 swift 混编可能导致包体积变大十几兆)

Build Options 中
Always Embed Swift Standard Libraries 改为 YES (Xcode 8.2+)

支持使用@import导入文件,当需要导入 framework 的时候这个选项必须是YES

Defines Module 改为 YES