其实很早前就打算写一些文章分享,可是总是感觉自己太菜,近来因为大神的带领,所以有了勇气去写。闲话不多说,直接上步骤和心得。
至于制作步骤和大概注意点我就不多说,可以参考和珏猫大咖的这篇文章http://www.jianshu.com/p/87dbf57cfe4a。我主要讲讲我遇到的坑。
第一个坑就是将FrameWork导入进自己的项目中出现了unrecognized selector sent to class,检查了一遍Framework确定没问题后,就开始排查自己的项目的问题,最后发现是Framework里的项目配置没有配置好,所以做事要仔细。
第二个坑就是在FrameWork里面写了分类,然后再次打包成FrameWork,导入项目进行运行出现selector not recognized,这个问题的解决很简单,在自己运行的项目里面进行如图修改就可以了
第三个坑的话引发了我和大神的讨论,主要问题出现就是我在制作自己的FrameWork引用了大量的第三方FrameWork,却没有将所有所需的Header文件设置为public。所以在自己的项目中出现了Xcode “Missing Submodule” warning项目一片飘红,N个错误出现在眼前。
解决方法主要分为三种,第一种适合比较大的公司项目,采用pod进行管理(此方案仅供参考,因公司项目中未使用coacoaPods,所以没有进行实践);第二种就是剥离出第三方的FrameWork,尽可能减少第三方的依赖,这样子能较好的控制Header文件的public和protect的分界。这个方法不足的就是不能用一个FrameWork以逸待劳。第三种方案相比起来费时间,而且操作起来比较麻烦,就是设置足够多的public头文件,我试了下,真的很麻烦,这个方案比较适合引入的第三方FrameWork比较少的情况,而且这个方案还有个可以说比较致命的坏处,就是如果引入的第三方FrameWork进行了更新,而且你的确需要用到第三方更新的内容,那就只能呵呵了,对不起,重新引入。
总结:总的来说第一种方案是比较理想的解决的方案,兼容性强,可扩展性强,主要是前期coacoaPods搭建环境比较麻烦,至于cocoaPods遇到的坑将在后续进行讲解。第二种方案适合练手以及一些项目中。














网友评论