XCode14在iOS12及以下系统,运行报错:
dyld: Library not loaded: /usr/lib/swift/libswiftCoreGraphics.dylib
Referenced from: /private/var/containers/Bundle/Application/EA264FCE-85E5-431D-A01D-C38969679F87/CMKit_Example.app/Frameworks/LSBase.framework/LSBase
Reason: image not found
解决方案:
- 查看报错是项目本身报错还是依赖的第三方库报错
- 1、项目本身报错:在项目的target -> Build Phases -> Link Binary With Libraries中添加:libswiftCoreGraphics.tbd
- 2、pod第三方库报错:SnapKit,更新至最新的SnapKit版本即可
- 3、pod第三方库报错:HandyJson,Pod Project找到SnapKit Target,Build Phases -> Link Binary With Libraries中添加:libswiftCoreGraphics.tbd(如果git没有提交pod目录的话,不适合这种修改方案)
- 4、pod第三方库报错:直接fork该第三方库、或制作私有pod库,引用该第三方库的framework,在spec文件添加如下代码
s.libraries = 'swiftCoreGraphics'
s.xcconfig = {
'LIBRARY_SEARCH_PATHS' => '$(SDKROOT)/usr/lib/swift',
}
所有pod第三方库报这个错,都可以参照2、3、4来解决,先看看第三方库作者有没有更新,再看看有没有提交pod文件夹,提交了就直接改Target配置,简单快捷,再不行就自己用方法4改
另附苹果开发者论坛提供的解决方案,我试了一下,对我们项目没效果:https://developer.apple.com/forums/thread/714795
另HandyJson作者已不再推荐使用HandyJson且该库已经很久没更新了,如果是HandyJson库报这个错,建议直接移除HandyJson库,采用其他库或系统方法代替,Issue链接:https://github.com/alibaba/HandyJSON/issues/466