极光推送SDK编译报错

Undefined symbols for architecture arm64:
“_OBJC_CLASS_$_CTTelephonyNetworkInfo”, referenced from:
objc-class-ref in libPushSDK-1.8.4.a(JPFUtilities.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1、极光推送的SDK添加到工程中后,编译报如上所示错误,网上有贴说明是直接将SDK拖入到工程中所致;

2、解决办法是在本地再次添加极光推送的的静态库文件(libPushSDK-1.8.4.a);

3、事实上这样未必就能完全解决,解决问题的关键还是要回到错误信息上去分析;

4、从错误提示上来看,很显示说明问题来自于libPushSDK-1.8.4.a这个库文件生成.o文件时编译不通过,而原因人家已经写得非常清楚明白了,缺少的是CTTelephonyNetworkInfo这个类或对象;

5、明白这一点问题就好办了,这肯定是某相系统库没有引用进来,CoreTelephony.framwork,这是他了,将这个引入到工程中即可解决!

Leave a Reply