第三方静态库制作
2015-09-18 21:38
246 查看
在iOS的开发过程中,我们常常用到第三方的库。像QQ、百度地图、广告等。下面将详细介绍如何生成静态库。
2.需要使用时,仅仅拷贝相应的.h文件和.a文件就好,不用在将源码一一拷贝。方便。
3.显得也比源码拷贝高端、大气一些。
生成如下的项目,即可在.h和.m文件编写相关代码。
设置完毕后,修改运行设备,分别在测试机和真机运行一次。会生成.a文件,.a文件在项目的缓存中,目录如下。
此时,则生成了可以在真机和测试机上运行的第三方库。
打开终端运行下列操作:
// 进入文件夹
yangjundeMini:Products yangjun$ cd /Users/yangjun/Desktop/Products/
// 查看编译的可执行的CPU环境
yangjundeMini:Products yangjun$ lipo -info Release-iphoneos/libYJURLSessionTask.a
Architectures in the fat file: Release-iphoneos/libYJURLSessionTask.a are: armv7 arm64
yangjundeMini:Products yangjun$ lipo -info Release-iphonesimulator/libYJURLSessionTask.a
Architectures in the fat file: Release-iphonesimulator/libYJURLSessionTask.a are: i386 x86_64
// 合并
yangjundeMini:Products yangjun$ lipo
-create Release-iphoneos/libYJURLSessionTask.a Release-iphonesimulator/libYJURLSessionTask.a -output libYJURLSessionTask.a
// 查看合并后的静态库支持的CPU环境
yangjundeMini:Products yangjun$ lipo -info libYJURLSessionTask.a
Architectures in the fat file: libYJURLSessionTask.a are: armv7 i386 x86_64 arm64
这样,就可以合并一个通用版本的静态库。唯一不爽的,就是体积要大一些。
通用版本大小>=模拟器版本大小+真机版本大小。
并且新生成的静态库支持armv7、i386、x86_64和arm64至于为什么不用支持armv7s,因为:支持armv7s运行的设备只有iPhone
5(你懂的)
一、静态库的优点:
1.让自己的源码不被直接暴漏。2.需要使用时,仅仅拷贝相应的.h文件和.a文件就好,不用在将源码一一拷贝。方便。
3.显得也比源码拷贝高端、大气一些。
二、建立静态库项目
生成如下的项目,即可在.h和.m文件编写相关代码。
三、生成静态库
生成第三方静态库时,也有两种模式可选,Debug和Release模式,默认是Debug模式,为了考虑上架苹果AppStore,这里我们修改为Release模式,修改方法如下所示:设置完毕后,修改运行设备,分别在测试机和真机运行一次。会生成.a文件,.a文件在项目的缓存中,目录如下。
此时,则生成了可以在真机和测试机上运行的第三方库。
四、合并静态库
将生成的第三方库,引入当前项目时,发现真机的第三方库只能在第三方库运行,测试机的第三方库只能在测试机上运行,为便于开发,需要合成能在所有平台上运行的第三方库。打开终端运行下列操作:
// 进入文件夹
yangjundeMini:Products yangjun$ cd /Users/yangjun/Desktop/Products/
// 查看编译的可执行的CPU环境
yangjundeMini:Products yangjun$ lipo -info Release-iphoneos/libYJURLSessionTask.a
Architectures in the fat file: Release-iphoneos/libYJURLSessionTask.a are: armv7 arm64
yangjundeMini:Products yangjun$ lipo -info Release-iphonesimulator/libYJURLSessionTask.a
Architectures in the fat file: Release-iphonesimulator/libYJURLSessionTask.a are: i386 x86_64
// 合并
yangjundeMini:Products yangjun$ lipo
-create Release-iphoneos/libYJURLSessionTask.a Release-iphonesimulator/libYJURLSessionTask.a -output libYJURLSessionTask.a
// 查看合并后的静态库支持的CPU环境
yangjundeMini:Products yangjun$ lipo -info libYJURLSessionTask.a
Architectures in the fat file: libYJURLSessionTask.a are: armv7 i386 x86_64 arm64
这样,就可以合并一个通用版本的静态库。唯一不爽的,就是体积要大一些。
通用版本大小>=模拟器版本大小+真机版本大小。
并且新生成的静态库支持armv7、i386、x86_64和arm64至于为什么不用支持armv7s,因为:支持armv7s运行的设备只有iPhone
5(你懂的)
相关文章推荐
- 第三周项目4-顺序表应用(2)
- 第一次面试知识点总结
- 企业敏捷变革所面临的三个核心问题: Product Owner, 既有思维, 软件架构
- python 3.3.2报错:No module named 'urllib2'
- python 3.3.2报错:No module named 'urllib2'
- 黑马程序员-----面向对象
- python下libsvm的使用
- Android-自定义属性的使用
- 滚动视图(UIScrollView)
- HDU5438 拓扑排序
- 求满足 Str1<Str<Str2 且 0<Str.length <=len 的字符串个数
- 内存四区解析
- 从eclipse导出,Android Studio导入项目过程出现的各种问题总结
- 熊分苹果的问题
- matlab(2) Logistic Regression: 画出样本数据点plotData
- UI12_AVAudioPlayer
- 红米NOTE拆机视屏 红米NOTE换总成
- 目标文件ELF中的内容
- iOS 核心动画-关键帧动画
- java环境配置