IOS之制作静态库.a文件

作者: xiaofengl | 来源:发表于2017-02-09 17:28 被阅读0次

    对于每一位开发者而言,开发经验积累到了一定的程度后,都想对自己的东西进行封装,方便更快捷的使用。 这里跟大家分享一下,静态库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

    相关文章

      网友评论

        本文标题:IOS之制作静态库.a文件

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