iOS静态库的制作

平时开发需要用到许多的库,有开源的,如AFNetworking SDWebImage,这些都是非常有名的开源库。也有一些闭源的,如友盟分享等等。

在平时开发中,可能几个公司合作一个项目,但又不想让另一个公司看到自己的源代码,怎么办。这时我们就可以制作自己的静态库。

如何制作.a

新建项目:选择cocoa touch static library

png1

把你需要制作静态库的源码添加到工程中

png1

选择你要公开的.h 文件, 点击build Phases ->左边那个“+” ->new headers phases后将你要公开的.h 文件拖入到public

编辑edit scheme,选择是release 还是debug

png1

然后选择真机或者模拟器 command + B 编译 编译完后会出现libprojectname.a 右键show in finder 在目录中会看到

png1

我这里四个全部都编译了一次,有模拟器和真机。

$ lipo -info libFDHandWrite.a Architectures in the fat file: libFDHandWrite.a are: armv7 arm64

在终端中可以看到 armv7 arm64 表示这是真机编译出来的。

$ lipo -info libFDHandWrite.a Architectures in the fat file: libFDHandWrite.a are: i386 x86_64

可以看到真机和模拟器是明显不同的。

要想在真机和模拟器中都能使用,那就要把两个.a 文件合并

$ lipo -create Release-iphoneos/libFDHandWrite.a Release-iphonesimulator/libFDHandWrite.a -output libHandWrite_common.a

将合并后的.a 文件拿到其他工程中就可以很方便的使用了,记得要连同些.h 文件一起拖进去。