问题1
静态库打包时,经常会碰到send undefined select to instance。这种问题尝尝出在使用catagory扩展的方法中。
分析问题是怎么发生的:
因为catagory是运行时才回去检索符号表去寻找方法IMP。而在编译时,编译器并没有检测到有关联关系,因此在宿主APP在编译链接时,将catagory误认为没有用到的文件而没有连接进二进制码中去。
解决办法如下:
1、将所有的catagory改写为Helper类,将catagory扩展的方法改为类方法。
2、宿主APP在编译时添加force load/all load 参数。
方法1是对SDK接入方友好的做法,不需要接入方做什么额外的操作就可以使用,推荐使用。
问题2
打好的SDK包由两个部分组成,