关于使用.a静态库找不到方法Crash的解决办法

今天在工作中遇到了这么一个问题。

项目中引用了静态库abc.a

abc.a中有一个UIDevice的Catagory方法

但是在编译运行的时候总会在Catagory方法处报错Crash。

提示找不到该方法。

解决方法:

在Project设置中的Other Linker Flags中添加

-all_load

完美解决。

 

 

原因:

出现这个错误,是因为这个class在原文件中未引用到,编译器在其他源文件中没有发现对这个class的引用,于是没有链接那个class。

解决方法:
1. 在任意一个源文件中使用一下这个class,比如NSLog(@[email protected], classA);
2. 在project的Info里面的Link Flag处,增加-all_load,这样会链接所以存在的symbol

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*