iOS SDK开发常用命令

lipo

SDK开发中最常用的指令。

1. 查看库包含的架构信息

lipo -info  /framework路径/xxx.framework
cd framework所在的目录
lipo -info xxx.framework

2. 合并多个架构

将模拟器x864、i386 和 真机 armv7架构、真机 arm64架构 合并到一起。

lipo -create 库1 库2 -output  合并库

这个一般不用,命令比较麻烦。

如果需要将不同的几个没关系的库打包成一个库(苹果最多支持6合1),这是一种合并方式,但是项目里不常用,没必要。

如果是打包一个库,合并模拟器合真机的架构,最好是在Xcode里添加脚本,再打包出合并的库。将各架构的库打出来再合并太麻烦了。

在项目的Build Phases中,新建一个Run Script,添加如下脚本:

if [ "${ACTION}" = "build" ]
then
INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework


if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

#open "${DEVICE_DIR}"
#open "${SRCROOT}/Products"
fi

这段脚本是网上找的。编译脚本的时候分别在模拟器合真机下都编译一下,不然可能会报找不到编译文件无法合并的错误。

3. 拆分库

lipo 待拆分库 -thin 要被拆分的库 -output 新库

这个一般不用。

上线前去除模拟器的架构,可以使用这个方式,但是最好别用,太麻烦。再Xcode中添加脚本,打包上线直接会去掉模拟器架构。

file

判断framework是动态库还是静态库

file /framework路径/xxx.framework

显示“Mach-O 64-bit dynamically linked shared library arm64”为动态库。

显示“current ar archive random library” 或“current ar archive ”。为静态库。

otool

1. 查看库包含的架构信息

otool -o /framework路径/xxx.framework/xxx

2. 查看当前app或库所使用的iOS系统的动态库

ipa -> show in finder->Payload->xxx.app/xxx,打开可执行文件

otool -L  /路径/xxx/Payload/xxx.app/xxx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morris_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值