导入第三方报错warning: -no_pie ignored for arm64 symbol(s) not found for architecture arm64
最近在老项目里添加BGFMDB及AFNetWorking的时候一直报错,具体错误信息如下:
ld: warning: -no_pie ignored for arm64
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_NSManagedObject", referenced from:
objc-class-ref in BGTool.o
ld: symbol(s) not found for architecture arm64
"_kUTTagClassFilenameExtension", referenced from: _AFContentTypeForPathExtension in AFURLRequestSerialization.o
ld: symbol(s) not found for architecture arm64
刚开始一直纠结于arm64的问题 于是参照一下链接做了配置:
Undefined symbols for architecture arm64解决方案
配置之后还是有问题 于是开始换了个思路 从依赖库着手
先解决BGTool的问题步骤如下:
1.找到BGTool文件 搜索报错信息(_NSManagedObject)
2.点击进入报错信息(_NSManagedObject)查询根依赖库
3.找到需要添加的依赖库(上图的CoreData依赖库), 并添加该依赖库 --> Target -->Build Phases --> Link Binary With Libraries
_kUTTagClassFilenameExtension的问题参照上面的步骤找到对应的依赖库并添加。
然后Command + Shift + K ,重新运行就OK了。
_kUTTagClassFilenameExtension步骤图如下,以供参考:
1.找到报错文件(AFURLRequestSerialization.h)的报错信息(_kUTTagClassFilenameExtension)
2.点击进入报错信息根依赖库
3.添加依赖库(MobileCoreSrevices)