美文网首页iOS Developer
一个亲测可行的.a合并脚本

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

作者: uniapp | 来源:发表于2017-09-22 16:55 被阅读0次

    在制作.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的生成。

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

    相关文章

      网友评论

        本文标题:一个亲测可行的.a合并脚本

        本文链接:https://www.haomeiwen.com/subject/zlpfextx.html