1、cd 目录(.a文件所在的路径),举例用桌面上的libPushSDK.a,获取libPushSDK.a的路径
打开终端输入
cd /Users/apple/Desktop(是我的电脑的桌面路径),之后回车 ,找到 libPushSDK.a 所在位置, 输入 ls 回车,确认是否是当前.a所在位置,
确定好之后输入命令
sudo lipo -info libPushSDK.a 之后回车,终端会提示需要输入密码(电脑密码即可),回车,会出现如下内容:
Architectures in the fat file: libPushSDK.a are: armv7s armv7 i386 x86_64 arm64
说明libPushSDK.a 支持 armv7s armv7 i386 x86_64 arm64 这些,所以可以放心使用到项目中。
实际开发中离不开静态库的使用,记录一下
.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
1. 需要静态库
2. 取出arm64架构(要求.a必须是NOFat,这里示例是去arm64架构)
3. 使用Linux ar命令
ar -v -t 文件路径 (表示:显示库的目录)
4. 效果如图
参考链接: https://www.jianshu.com/p/7a1af989877f
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)