美文网首页
组件24-二进制:库的开发技巧总结

组件24-二进制:库的开发技巧总结

作者: Lovell_ | 来源:发表于2017-07-13 22:56 被阅读15次

    一、静态库打包的完整正确步骤

    1、确定做的是静态库。

    • .a 的肯定是静态库
    • .framework的需要设置链接类型:target -> Build Settings-> 搜索 Mach-o Type ; 改为静态库

    2、确定支持模拟器或者真机中的所有构架。

    Build Settings -> Build Active -> NO(表示不止编译活跃的架构, 让所有的架构都编译)

    3、提供的静态库应该是release版本。

    项目 -> Edit Scheme -> Run -> Release/Debug 分别进行编译

    二、.a静态库和.framework静态库的区别?

    1> .a是一个纯二进制文件,.a文件不能直接使用,至少要有.h文件的配合
    2> .framework文件可以直接使用,.framework中除了有二进制文件之外还有资源文件
    3> .a + .h + sourceFile = .framework
    4> 建议使用.framework。

    三、静态库开发中的常见问题

    问题1: 有些第三方库会使用到一些图片素材,例如公司的logo等。

    • 问题描述:由于Xcode默认在编译时会把所有的素材文件导入到mainBundle中,可能与使用静态库的程序冲突。
    • 解决方案:在静态库中如果要使用图片素材,会利用bundle的手段。(应该是在宿主工程操作,而不是在库工程中,而且以下4点针对的是.a库,framwork怎么使用图片还不知道呢)
      • 1> 建立.bundle文件夹,拖入工程,并且向其中添加图片
      • 2> 创建一个类方法,返回图片
      • 3> 编译
      • 4> 调用方如果需要使用,需要导入 .h + .a + XXX.bundle

    问题2:如果用户需要导入的头文件过多怎么加?

    • 建议使用一个主头文件包含其他头文件, 让用户只导入一个主头文件

    问题3: 静态库程序怎样测试?

    • 问题描述:静态库本身就是一个小项目, 实现某些功能, 但是这些功能在开发中也需要测试. 而测试代码又不能作为静态库的一部分
    • 解决方案:创建复合项目

    四、复合工程

    可以边写代码,边测试。


    Snip20170713_38.png Snip20170713_37.png

    五、小技巧

    关于framework静态库导入头文件到宿主工程的问题。

    1.使用静态库framework,导入里面的头文件样式是:<framework/Tool.h>
    2.但平时我们是面对源码开发,导入样式是:"Tool.h"
    3.如果把Tool做成组件,导入样式变成<framework/Tool.h>,那么改动就大了
    4.为了解决这个问题,把头文件tool.h 拖出来,如下图。

    Snip20170713_39.png

    相关文章

      网友评论

          本文标题:组件24-二进制:库的开发技巧总结

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