iOS Developer

一个亲测可行的.a合并脚本

2017-09-22  本文已影响0人  uniapp

在制作.a的过程中, 需要将真机下的.a文件和模拟器下的.a文件合并。由于需要反复调试修改,所以调试了一个脚本Run Script来实现自动合并。直接看脚本:

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

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

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


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

mkdir -p "${SRCROOT}/Products"

cp -R "${BUILD_ROOT}/${CONFIGURATION}-iphoneos/usr/local/include/" "${SRCROOT}/Products"

lipo -create $DEVICE_DIR $SIMULATOR_DIR -output $INSTALL_DIR

open "${SRCROOT}/Products"
fi

下面手把手介绍一下使用步骤:
首先在.a项目中添加Run Script文件:

.a项目

添加上述代码命令Run Script:


Run Script

选择模拟器iPhone 7 Plus编译项目,忽略2处的报错,因为现在还没有编译真机下的.a文件。

iPhone 7 Plus编译

选择真机编译运行,就会弹出编译后合并好的.a文件:


选择真机
合并好的.a文件

通过命令行可以检查下生成的.a文件,结果如下:

 lipo -info /Users/zhudongdong/Documents/工作/iOS/自动合并/Products/lib自动合并.a 

Architectures in the fat file: /Users/zhudongdong/Documents/工作/iOS/自动合并/Products/lib自动合并.a are: armv7 x86_64 arm64 

参考Xcode环境变量列表修改个别参数,可以用于framework的生成。

关注和喜欢都是对我的支持和鼓励~

上一篇下一篇

猜你喜欢

热点阅读