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

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

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: 静态库程序怎样测试?

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

四、复合工程

可以边写代码,边测试。


组件24-二进制:库的开发技巧总结_第1张图片
Snip20170713_38.png
组件24-二进制:库的开发技巧总结_第2张图片
Snip20170713_37.png

五、小技巧

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

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

组件24-二进制:库的开发技巧总结_第3张图片
Snip20170713_39.png

你可能感兴趣的:(组件24-二进制:库的开发技巧总结)