美文网首页
iOS 创建静态库

iOS 创建静态库

作者: CMD独白 | 来源:发表于2016-12-10 13:11 被阅读29次

    一、静态库和动态库的区别

    静态库和动态库是相对编译期和运行期的,在存在形式上,静态库是以 .a 和 .framework 形式存在,动态库是以.dylib 和 .framework形式存在的;在使用上,链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝,而动态库链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

    二、关于静态库

    静态库分为:真机—Debug(调试)版本、 真机—Release(发布)版本、模拟器—Debug版本、模拟器—Release版本,开发中一般都打包Release(发布)版本,将真机和模拟器版本合并,提供外界。刚开始不明白这个,然后使用的Debug版本生成点a文件,在项目中使用一直报错。

    屏幕快照 2016-12-10 11.51.05 AM.png

    三、创建.a静态库

    1、新建项目,点击iOS—Framework&—Cocoa Touch Static Library

    1.png

    给工程命名stone-bleApi-1.7.8

    2.png

    2、系统自动生成以工程名命名的.h和.m文件,可自定义的在目录下添加或删除文件,注意目录下Products文件夹有一个.a文件为红色,说明文件并不存在。这里我们将系统生成的.h和.m文件删除。

    3.png

    删除自动生成的.h和.m文件,然后将已经写好的类拖进来,如下图所示:

    4.png

    3、点击Xcode左上角,选择Edit Scheme,Build Configuration下选择Release,先注意检查下面Release是否为NO:Yes表示只编译选中模拟器设备对应的架构,No则为编译所有模拟器设备支持的cup架构(Debug版本同理),选择NO,然后分别在模拟器和真机下Command+B编译一下,会看到Products文件夹下的.a文件变为黑色,这个.a文件就是我们想要得到的静态库,这里会出现一个问题你先编译的模拟器会发现.a依然是红色,你需要模拟器和真机都编译后.a才会变成黑色,这应该是Xcode本身的问题

    5.png 6.png 7.png 8.png

    4、分别选用真机模式编译和模拟器编译

    9.png 10.png

    5、找到编译之后生成的.a文件,合并真机生成的.a文件和模拟器生成的.a文件,在终端输入以下命令行:lipo -create 模拟器.a文件的路径 真机.a文件的路径 -output 合并后的保存路径

    11.png 12.png 13.png 14.png

    相关文章

      网友评论

          本文标题:iOS 创建静态库

          本文链接:https://www.haomeiwen.com/subject/kjaymttx.html