项目中我们常常会遇到需要手动导入的SDK,这些SDK没有pod
的导入方法是很麻烦的,比如添加手动微信的第三方时,需要添加各种依赖
![](https://img.haomeiwen.com/i1782131/f296f1d4ea86aa43.gif)
或者导入的包中又大量的C++和C写的库,往往会导致项目报很多错误,我们第一时间就是去百度报错的原因,然后跟着百度走,这往往有时候会把你带偏,导致项目报错一个接着一个,感觉永远都改不完似的。
其实最快捷的方法就是看它的demo,你可以先整体预览一下导入SDK的文档,然后对照着demo的设置方法一个个设置,毕竟demo能正常运行,说明它的所有设置和导入依赖都是正确的。
我自己很典型的例子:
一个银行的SDK需要导入,它里面有很多的C/C++写的Lib,当发生C导入错误时,首先报错的原因是
Implicit declaration of function 'RSA_free' is invalid in C99
百度最靠前的解决方法是:
- Build Setting>>>C Language Dialect,然后选择GNU99[-std=gnu99]
- Build Setting>>>Architectures>>>Vaild Architectures,然后把arm64和armv7s去掉
- Build Setting>>>Architectures>>>Build Active Architecture Only,把Debug的YES改为NO。
- Build Phases>>>Compile>>>找到对应的文件 添加-fno-objc-arc
虽然报错的条目少了,但又有新的报错原因,然后又百度,我就弄了一早上的问题,还是没有解决。
被逼无奈,回滚项目,然后去看了demo里怎么回事,最后发现demo里并没有这么设置。也没有更改C Language Dialect
等上面提到过的东西。
于是我就对着demo的Build Settings
和Build Phases
一个个查看对照,最终稀里糊涂的编译时通过。这让我感到意外,从看demo改所花费的时间仅仅只有几分钟时间,和花了一早上的时间比起来,真的是很快。
网友评论