封装framework以及遇到的坑

framework静态库创建:


图片1

创建完后,这里我们需要把Mach-O type改为Static Library,因为制作的是一个静态库


图片2

把Build Settings -> Architectures -> Build Active Architecture Only  选择NO,Yes表示只编译选中模拟器设备对应的架构,No则为编译所有模拟器设备支持的cup架构(图略)


图片3

1是将来暴露在外边的头文件,如果想让2中的头文件暴露,可以选中点击右键,选择:Move to public group。到这里只需要将你要用的文件导入这里,把需要暴露的头文件暴露出来就OK了,然后编译,在Products下就出现了fromework,复制到工程中就行了。

添加支持模拟器:


图片4

中间可能遇到的坑:

1.编译出错,首先检查一下是不是用的模拟器,切换成真机试试。

2.如果在使用过程中,程序崩溃,说什么找不到方法,很可能是你用了Category,可以在你的目标工程中修改:

图片5

具体原因参考:https://www.jianshu.com/p/8bbb1c38d3ac

3.差点忘了最后一点,如果在目标工程中引用framework中的头文件,但是,发现头文件中引用有其他的头文件,这时候可能会报错,说找不到那个文件,这里说明一下:你所暴露的头文件中如果引用了其他文件,那么,所有在你暴露的头文件中引用的头文件都需要暴露,是不是很绕口。简单说,就是,你暴露的头文件中所有用到的头文件都要在framework中暴露,否则就会报错,所以,在这里建议,能不在头文件中引用其他文件的,就尽量写在.m吧。

最后,写的有点乱,只是自己的一个笔记,如有错误,欢迎指正

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文链接在上一篇教程(中译版)中,你学到了怎么样创建一个可复用的圆形旋钮控件。然而你可能不清楚怎样让其他开发者更方...
    _冷忆阅读 7,126评论 9 5
  • 这几天公司有一个新的需求,就是要将我们开发的某些东西都抽取出来,打个比方我们开发了A项目,可以以后B项目要包含A项...
    黄鱼儿啦啦啦阅读 11,371评论 2 16
  • 仅以方便自己查阅记录前言1.静态库和动态库有什么异同?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗...
    190CM阅读 9,810评论 0 4
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,801评论 1 32
  • 前言 1.静态库和动态库有什么异同? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。利用静态...
    Ly梦k阅读 12,752评论 3 18