在OC的开发中,我们涉及到的一般是静态库(.a)或者动态库(.framework)。(注:不是所有的.framework就一定是动态库)
.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。 .a文件不能直接使用,至少要有.h文件配合(微信的SDK就是这种形式),.framework文件可以直接使用。 .a + .h + sourceFile = .framework。 建议用.framework。再者 静态方式开发,一直是iOS SDK开发的主流方式。
终端输出为:armv7 arm64 是真机架构;i386 x86_64 是模拟器架构。
终端输出为:arm64 是真机架构;x86_64 是模拟器架构。
Bundle 和 其他的SDK都要和创建的SDK放在同一个文件夹,然后拖入要使用的项目中,如果该项目中的SDK和创建的SDK中的引用的SDK重复,那么就只要保持存在一个就好了。
实际开发中离不开静态库的使用,记录一下
.a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
.a + .h + sourceFile = .framework。
创建
配置如下
加到主工程
配置路径
导入头文件 使用
targets->Build Phases->Copy Files->"+"你需要公开的头文件
所有流程都跟上面的一样,只是我们运行打包时要选择真机运行,你可以选择自己插上去的真机,也可以选择Generic ios Devices。当然不要忘记了设置支持所有真机机型架构: Build Active Architecture Only 设为NO。
分别使用真机或者Generic iOS Device 和 随便一个模拟器运行静态库 得到模拟器静态库和真机静态库 然后在Finder 中打开
Show in Finder
通过命令行合并 (注意 库的名称要一致)
lipo -create 第一个.a文件的绝对路径 第二个.a文件的绝对路径 -output 最终的.a文件路径
然后在工程中将这个.a 替换就支持真机和模拟器了
workspace里 Argos是主工程 LJNetwork是一个静态库工程 AGFramework.framework是打包好并导入到主工程的静态库
现在LJNetwork要引用AGFramework.framework库
只需要在LJNetwork的Build Setting —>User Header Search Paths 中 拉入AGFramework.framework中的Headers文件夹的路径
静态库LJNetwork引用 静态库LJFoundation的文件
配置如下
静态库LJNetwork要引用pods中的AFNetworking 如下设置
个人博客地址: https://youyou0909.github.io
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)