美文网首页
打包静态库

打包静态库

作者: Y_Swordsman | 来源:发表于2019-05-07 08:16 被阅读0次

    如果只是简单的静态库打包,我也不多说什么,现在网上大把。作为程序员我们先说说需求。封装一个第三方framework。不在外部暴露关于该framework的任何消息。

    配置

    xcode 10.1

    第一步 创建静态库工程

    创建静态库

    按照正常导入封装代吗就可以了,当然不是啦,
    接下来就是重点了,恶心了很久的东西。
    导入我们需要第三方framework。你以为按照网上说的直接导进去,只要不点击add to targets ,只导入到项目中去就可以了。我不清楚是从Xcode几开始这种方法不可以了啊。反正我的Xcode10不可以。然后就查阅前篇文章,尝试了各种奇门异法,终于让我找到一篇文章,如何将framework变成.a文件。那么就可以打包进我们的SDK里面去了。
    引用这篇文章的话:
    通过framework的介绍:Framework的英文释意是框架,主要由Headers、binary文件、.bundle这三部分构成,其实framework就是在.a静态库基础上的更上一层封装,包含了资源,二进制文件,和头文件并生成统一格式方便用户调用有点类似<.dylib和.tbd>,并不是重新生成的另外一种形式,只是对老的格式进行了一层更规范的封装,统一管理资源文件 头文件和库的二进制文件。所以如果你需要的.a文件其实就在.framework文件中。
    在你的framework的文件中找到跟framework库同名的无后缀文件。将这个文件加上.a后缀即可。如图


    拿UM做列子

    这样我们就重新获取到一个我们需要的.a库了。
    还有个小问题,如果个别第三方里面还有携带其他信息文件,也要一并放入到我们创建的文件夹里。

    第二部配置

    我们导入的第三方一般都是需要引入各种系统库,和tbd文件的。这个我们一定要做的,不然编译会出错。
    然后我们的配置项目。
    1· 调整最低支持iOS系统
    2· 将Build Active Architecture Only 设置为NO
    3 ·如果 SDK 有用到 Category,注意项目设置 Other Linker Flags 添加 -ObjC
    4· RGETS (yooweiSDK) - Build Settings-Architectures 增加armv7s。 如果你用的真机是iPhone5 C,生成的Framework不支持armv7s,默认的Architectures不包含armv7s。 所以要在Architectures下增加armv7s,并选中。(个人测过xcode10打包出来的不需要加入这个了。)

    第三步 合成虚拟机库和真机库

    说实话这个没什么好说的,就是一句命令行

    lipo -create 虚拟机库.a 真机库.a -output .../Desktop/??.a(生成路径)
    

    搞定了。

    相关文章

      网友评论

          本文标题:打包静态库

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