将来跳槽用iOS 开发每天分享优质文章iOS程序猿

IOS之制作静态库.a文件

2017-02-09  本文已影响0人  xiaofengl

对于每一位开发者而言,开发经验积累到了一定的程度后,都想对自己的东西进行封装,方便更快捷的使用。 这里跟大家分享一下,静态库SDK的制作过程。如果有不对的地方,希望大家指正。
制作的库,可分为静态库跟动态库。静态库在加载时系统会将全部代码都复制一份到项目中去,换然之,这会造成一定程度的代码冗余。动态库则刚好相反,只要系统中有了一份,就算不同的应用也会公用一份。但是也就说明了使用动态库的应用不能上线到苹果商店的。
前提:你开发好了某一模块的功能,并且已经将改功能的代码分离出来。
这里以页面滑动模块作为例子。
1.新建这样的一个工程:

新建静态库工程.png

2.一般来说,制作的库都想要做到最大程度的兼容,这里设置一下

最大程度兼容.png

3.将开发好的模块代码加载进来

加载模块功能代码.png

注意:如果你的模块功能的代码用到类别(category)的,在category类中的所有属性都必须使用objc_setAssociatedObject进行扩展,否则制作好的静态库在使用是会报错(ps:类目只扩展方法,不可扩展属性)。

属性的扩展.png

4.制作模拟器跟真机上的.a文件
模拟器:

模拟器选择.png 编辑.png 选择debug模式.png

command+B 编译,成功后,可以看到

模拟器的.a文件.png

同样,真机的.a文件生成。
真机:

真机.png 真机2.png

command+B 编译,成功后,可以看到

真机的.a文件.png

查看:

查看.png 查看2.png

5.将两个.a文件合并,方便使用。打开终端。
输入:lipo -create 模拟器.a文件的路径 真机.a文件的路径 -output 合并后的.a文件路径

合并.a文件.png SDk制作.png

6.使用制作的.a库

使用.png 使用2.png

只用运行后,编译没问题,在加载的时候会报错:没法识别某个方法.
需要设置:

使用设置.png

重新运行。ok

没有tabBar.gif 有tabBar.gif

demo链接:https://github.com/xjl1411817045/XJL_Slide_Project.git

上一篇下一篇

猜你喜欢

热点阅读