如何制作静态库及合并静态库

1.新建工程,选择如下:

如何制作静态库及合并静态库_第1张图片
838C5DB5-5437-4096-ADEA-09D9529F110B.png

2.新建的工程中会有两个文件XXX.h 和 XXX.m,在XXX.m中随便输入一段代码,例如"- (void)printA;"和"+ (void)printB;"的方法,这个方法的实现也是很简单的,在*.m文件中的实现就是一个"NSLog(@“”);"这样我们编译出来的libstaticlib就可以被其他的IOS工程进行调用了。这块注意一下,目前我们的Print->iOS Device。
3.编译前准备,这里分release与debug版本,需要设置一下。

4.在target->building setting中新建一个header,把需要暴露的文件放在public里面,如下,因为我已经添加过了,所以是灰色的。

如何制作静态库及合并静态库_第2张图片
8EB5831B-810A-4C1F-9647-56CA05065FD9.png

这里分为三项:public是要暴露出来的头文件,private是私有的,也要添加进去。

如何制作静态库及合并静态库_第3张图片
8BDEF7AB-6384-4D61-BCC2-D7DD8C41895B.png

5.编译,要编译模拟器版本和真机版本,分别command+B即可,然后
点击如下show in finder查看即可看到,这里分为模拟器和真机。

如何制作静态库及合并静态库_第4张图片
屏幕快照 2016-03-22 上午11.38.25.png
如何制作静态库及合并静态库_第5张图片
E980615F-A153-40EF-81C5-9D91B0250415.png

6.到这里四十已经可以了,但是我想再普及一下知识,如何查看静态库是支持真机还是模拟器呢?
其实非常简单,打开终端:
输入命令:lipo -info XXX.a文件路径(直接把.a拖进终端即可)

如何制作静态库及合并静态库_第6张图片
28BD6758-8B7D-4B6A-9BEB-4B4089329B16.png

7.那么如何合并静态库呢?
lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/iphonesimulator/libGamePlusAPI.a -output SQY/iOS/libGamePus.a

其中SQY/iOS/iphoneos/libGamePlusAPI.a //为真机库。 SQY/iOS/iphonesimulator/libGamePlusAPI.a //为模拟器库 -output SQY/iOS/libGamePus.a //为两个合并后存放的路径然后可以输入命令测试下是否成功 lipo -info SQY/iOS/libGamePus.a //下面是输出 armv7 i386 有了两个就表情模拟器和真机都支持 其中armv7为真机架构 i386为模拟器Architectures in the fat file: SQY/iOS/libGamePus.a are: armv7 i386

如何制作静态库及合并静态库_第7张图片
28BD6758-8B7D-4B6A-9BEB-4B4089329B16.png

你可能感兴趣的:(如何制作静态库及合并静态库)