怎么查ios app中的.a库支持arm

怎么查ios app中的.a库支持arm,第1张

现在xcode App打包上传到iTunes Connect,需要xcode6.1.1 并且需要支持arm64,因此需要判断第三方库是否支持arm64,同事分享在终端如何查看.a文件是否支持arm64,步骤:

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11467425.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存