[iOS]制作静态库
2016-03-08 15:51
309 查看
关于静态库的概念及好处,这里不再赘述,直接给出制作步骤;
1. 建立静态库工程
新建工程 -->Framework&Library --->Cocoa Touch Static Library
完成后可见,只有一个.m和.h文件,就是在这里编写我们的代码:
这里,我简单写了一个方法,实现文件里只有一个输出语句输出一句话:
2.生成静态库
生成的静态库有两种模式:Debug和Release,其中默认的是Debug模式,需要将其改为Release模式(如果不上线可不改):
选择 Product -->Scheme -->Edit Scheme...
Run --> info -->Build Configuration
完成后,选择运行的设备,在真机和模拟器上各运行一次,这时会发现,在项目的Products目录下会有个.a文件(未运行之前是红色的,表示不存在;运行后是黑色的,表示存在),右键-->Show In Finder
可打开缓存目录:
以显示详细路径可发现,在Products文件夹下有两个文件:Release-iphoneos和Release-iphonesimulator,分别保存着可真机环境下和可在模拟器环境下运行的.a静态库和.h(在include文件夹下)文件;
4.合并静态库(生成可同时在模拟器和真机使用的静态库)
打开终端,cd到Products文件夹(也可将此文件夹复制到桌面,方便操作,我这里直接进入到缓存目录下的),可直接单击上图中Products文件夹名,然后拖到终端里,可自动生成路径:
指令ls可查看当前文件夹下的文件:
查看静态库可执行的CPU环境,使用指令lipo -info 可查看文件信息,因为.a文件不是在此直接目录下,需要加上相对路径:
合并静态库:
-output后的是合并后的.a文件名称,可指定保存的位置,只需在名称前加上路径,这里直接保存在Products文件夹下的;
回车后可发现Products文件夹下多了一个.a文件:
查看合并后的.a文件支持的CPU环境:
到此,静态库的生成和合并就完成了,使用时只需添加新生成的.a文件和上面提到的.h文件到工程中即可;
5.使用
添加.a文件和.h文件后,导入头文件,即可使用,如下图:
1. 建立静态库工程
新建工程 -->Framework&Library --->Cocoa Touch Static Library
完成后可见,只有一个.m和.h文件,就是在这里编写我们的代码:
这里,我简单写了一个方法,实现文件里只有一个输出语句输出一句话:
-(void)log { NSLog(@"只是测试一下"); }
2.生成静态库
生成的静态库有两种模式:Debug和Release,其中默认的是Debug模式,需要将其改为Release模式(如果不上线可不改):
选择 Product -->Scheme -->Edit Scheme...
Run --> info -->Build Configuration
完成后,选择运行的设备,在真机和模拟器上各运行一次,这时会发现,在项目的Products目录下会有个.a文件(未运行之前是红色的,表示不存在;运行后是黑色的,表示存在),右键-->Show In Finder
可打开缓存目录:
以显示详细路径可发现,在Products文件夹下有两个文件:Release-iphoneos和Release-iphonesimulator,分别保存着可真机环境下和可在模拟器环境下运行的.a静态库和.h(在include文件夹下)文件;
4.合并静态库(生成可同时在模拟器和真机使用的静态库)
打开终端,cd到Products文件夹(也可将此文件夹复制到桌面,方便操作,我这里直接进入到缓存目录下的),可直接单击上图中Products文件夹名,然后拖到终端里,可自动生成路径:
$ cd /Users/mac/Library/Developer/Xcode/DerivedData/Test-dogkciifmtqvakafpvgtudysyghv/Build/Products
指令ls可查看当前文件夹下的文件:
$ ls Release-iphoneos Release-iphonesimulator
查看静态库可执行的CPU环境,使用指令lipo -info 可查看文件信息,因为.a文件不是在此直接目录下,需要加上相对路径:
$ lipo -info Release-iphoneos/libTest.a Architectures in the fat file: Release-iphoneos/libTest.a are: armv7 arm64回车后,可以看到支持armv7和arm64
$ lipo -info Release-iphonesimulator/libTest.a Architectures in the fat file: Release-iphonesimulator/libTest.a are: i386 x86_64这是模拟器静态库信息;
合并静态库:
$ lipo -create Release-iphoneos/libTest.a Release-iphonesimulator/libTest.a -output libTest.a
-output后的是合并后的.a文件名称,可指定保存的位置,只需在名称前加上路径,这里直接保存在Products文件夹下的;
回车后可发现Products文件夹下多了一个.a文件:
查看合并后的.a文件支持的CPU环境:
$ lipo -info libTest.a Architectures in the fat file: libTest.a are: armv7 i386 x86_64 arm64
到此,静态库的生成和合并就完成了,使用时只需添加新生成的.a文件和上面提到的.h文件到工程中即可;
5.使用
添加.a文件和.h文件后,导入头文件,即可使用,如下图:
相关文章推荐
- JS判断客户端是否是iOS或者Android
- iOS runtime基础知识
- iOS url schemes应用
- iOS中获取各种文件的目录路径的方法
- iOScell 重用解决办法
- iOS Block循环引用精讲
- iOS 图片压缩
- iOS开发—巧用反射机制
- iOS svn配置
- 手机号正则表达式iOS
- iOS项目开发中遇到CRASH:重写Setter对服务器获取的数据做空值的过滤处理
- iOS CGAffineTransform属性
- nagios 安装配置(包含nrpe端)全 (三)
- iOS开发笔记--iOS之轻松上手block
- ios笔记-多线程相关(phread、NSThread、GCD、NSOperation)
- EasyVideoRecorder短视频拍摄、短视频录制SDK支持IOS版本
- iOS----------SDWebimage源码解析(3)
- iOS实现屏幕旋转
- iOS 录音,播放,转码MP3,上传语音文件
- iOS runtime的一些心得实践