美文网首页
iOS静态库的制作(.a&.framewrok)

iOS静态库的制作(.a&.framewrok)

作者: woniu | 来源:发表于2018-02-27 18:37 被阅读9次

    罗辑思维的罗振宇曾经说个关于学习的方法,但凡是学过的知识,我都会用笔写下来,哪怕是做一些简要的分析也是很好的,学的知识要有输出。我们相当于在大脑中做了一个记号,等到下次使用的时候就有线索来回忆这些知识了,同时也节省了大量的时间。

    掐指一算已经做了两年多的SDK了,制作SDK已经成了机械性的动作了。虽说制作静态库也不算什么难题,但是其中遇到的问题还是要好好记录下来,毕竟好记性不如烂笔头!在新的一年里希望自己变得更好一点,同诸君共勉!

    注意:由于苹果只允许动态库在平时开发的时候使用但是不允许上线,所以各位亲们一定要擦亮双眼。下面我们开始吧!
    一、创建静态库工程
    .a和framework能实现的功能都是一样的,只不过使用.a文件还要配合着相应的.h文件使用。而framework就方便多了,相当于将.a和.h都封装到一个文件里面了。开发者使用起来也十分方便,不会担心漏掉了某个.h文件。所以,这里还是推荐大家使用framework来制作静态库。


    创建framework.png
    创建.a.png

    2、对静态库进行配置
    a:首先我们在Architectures中添加armv7s,这是因为我们的SDK要适配各个处理器,如果不加那么在遇到这个处理器时会报错。
    b:Build Active Architectures Only 默认是YES,也就是说之制作的SDK会只针对你所指定的某一款机型。所以,我们设置为NO让所有的手机都可使用。


    配置1.png
    c:Targeted Device Family默认是(1,2),意思为iPhone 和ipad都可以使用,这个在较早版本的Xcode中是直接用iPhone 和ipad表示的,现在用1、2来表示。
    d:iOS Deployment Target意为配置SDK支持的最低版本。
    配置2.png
    e:Enable Bitcode 设置,默认为Yes,如果你要设置不支持Bitcode的话,就改为NO。
    配置3.png

    f:Mach-O Type配置我们库类型,Static Libraty(静态库)、Dynamic Library(动态库),这一点要注意下。


    配置4.png
    g:设置release模式
    这里有两种模式debug和release,之前试过debug上线,也没有什么问题,不过还是推荐用release。
    release.png
    3、向用户暴露相应的头文件
    默认所有的.h头文件都在Project中,无法暴露,为了暴露相应的头文件,我们从Project中将相应的.h文件拖入Public中。
    暴露头文件.png
    4、生成静态库
    分别选择真机以及任意一款模拟器,然后Command+B,会生成真机以及模拟器的静态库。
    模拟器.png
    真机.png
    生成的静态库.png
    5、合并静态库
    为了开发者使用方便,我们提供的静态库是真机和模拟器合并的静态库,合并方法如下:
    合并静态库方法:lipo -create 真机静态库 模拟器静态库 -output 合并静态库
    查询适配的处理器:lipo -info 静态库
    合并静态库.png
    适配的处理器.png

    相关文章

      网友评论

          本文标题:iOS静态库的制作(.a&.framewrok)

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