iOS封装.a文件

来源:互联网 发布:linux 命令行 r 编辑:程序博客网 时间:2024/06/16 22:42
最近蒲公英开始收费,并且公司也有每个界面做用户行为分析的需求,所以需要自己做一个简单的BUG分析以及用户行为分析的SDK,在每一个项目只用几行代码就可以对用户进行记录,至于设计的思路就不再跟各位细说,基本上就那么几种。 首先打包.a文件,项目编写好之后.a文件打包出来是很简单的,这个我随便搜了一个参考用的: http://blog.csdn.net/dreamermjs/article/details/52127530 有需求的可以参考他的,不过里面有几个问题,简单说下,生成.a文件之后,他第六步生成的是模拟器模式下的.a文件,真机调试根本不能用,会提示包不对,查找资料发现,生成的.a文件有两个,一个是模拟器调试用的,一个是真机用的,如果想自己以后方便用,那么就需要把这两个合成一个,合成的方法是在命令行输入:Lipo -create (debug.a文件地址) (模拟器.a文件地址) -output (生成到哪的地址),为了方便大家找到,我给大家贴出来我的命令--->里面的路径需要大家自己改:lipo -create /Users/zhangguang/Library/Developer/Xcode/DerivedData/BugAndUserAction-axdrntlcnlryofdffnlgrsquyrnv/Build/Products/Debug-iphoneos/libBugAndUserAction.a /Users/zhangguang/Library/Developer/Xcode/DerivedData/BugAndUserAction-axdrntlcnlryofdffnlgrsquyrnv/Build/Products/Debug-iphonesimulator/libBugAndUserAction.a -output /Users/zhangguang/Desktop/LibBugAndUserMessage.a<--- 其实debug和真机的.a 文件都在一个路径下,最后有一个分支,Debug-iphonesimulator和Debug-iphoneos 的区别而已。以上是第一个问题。 第二个问题也比较麻烦,生成.a文件之后,加入到新项目里面,最好在Build phases 里面Link Labrary 里面添加以下.a文件,然后呢,你调试如果成功了,那就算了,如果不成功,提示:unrecognized selector sent to instanceXXXXXXX 的时候,你就会很蛋疼,明明没毛病啊,提示unrecognized selector大部分是两种情况1.存在野指针的情况,也就是这个类你可能已经释放了,但是你还在用,他就不能接受这个方法,或者说你根本没有实例化他;第二种,很明显.h公开的方法和.m里面方法名字不一致,会导致寻找方法时候找不到,然后报错。如果你确认这两种情况都不存在的时候,还会报错,那么解决起来就很简单的,灰常灰常简单:你commond + B 执行的时候不要执行某一种模拟器或者说你的手机,而是要选择Generic iOS Device ,反正我是犯了这个低级错误,查了好一会才解决,太不够认真了,好了关于.a文件封装的问题就差不多了,坑不是特别多
原创粉丝点击