iOS开发——创建你自己的Framework

原文地址:

创建自己的framework


1.查看framework的支持指令集:

$ lipo -info MyFramework 

查询结果:

......

......

Architectures in the fat file: MyFramework are: armv7 arm64

2.合并framework:

$ lipo -create MyFrameworkArm.framework/MyFramework MyFrameworkx86.framework/MyFramework -output MyFramework

用输出的MyFramework替换MyFrameworkArm.framework或者MyFrameworkx86.frameworkMyFramework即可。


笔记:


静态库和动态库

.a / .dylib / .tbd


库就是一段编译好的二进制代码,两种情况用到库,一是不希望别人看到源码,只暴露头文件;二是不会进行大改动的代码,节省编译时间。


平时用的第三方SDK基本上都是静态库,编译时会拷贝一份编译到目标程序,所以二进制文件会变大;使用时,需要手动导入静态库所依赖的其他类库;导入静态库可以减少对外界的依赖,如果导入的是第三方动态库,动态库找不到的话会崩掉;静态库可以减少耦合性,静态库不可以包含其他静态库,保证每一个静态库都是独立的,不会重复引用。


使用频率最高的UIKit.framework Foundation.framework都属于动态库,所有的.dylib / .tbd结尾的都属于动态库。平时使用的系统库都放在IOS系统中,打包应用程序时不会拷贝到程序中,当使用时才会动态从iOS系统中加载,因此动态库也被称为共享库;这些库是所有应用公用的,节省了安装包的体积;动态库制作的时候可以直接包含静态库,也能自动link所需要的依赖库;使用动态库不需要再次link依赖库。注意:导入自己制作的动态库时,需要在Embedded Binaries中导入,不然会报错:image not found,此时这个动态库会跟静态库一样被拷贝到目标程序中进行编译???


Framework,主要由Headers、binary文件、bundle构成,还有记录版本信息的info.plist和Modules。binary是编译成的二进制文件,注意:依赖库需要重新link。

.a静态库,还需要提供头文件,比Framework麻烦。

.dylib/.tbd动态库,基本上由系统提供。








  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值