美文网首页iOS 学习
iOS .a静态库生成(二)

iOS .a静态库生成(二)

作者: 零粹 | 来源:发表于2019-01-20 18:50 被阅读0次

    Demo https://github.com/ITHanYong/StaticLibrary2.git

    1、首先创建一个新的工程(选择Cocoa Touch Static Library)


    Static Library.png

    2、配置Scheme


    选择Edit Scheme.png 配置Scheme.png

    3、添加功能代码与设置公开头文件


    添加公开头文件.png

    4、添加Aggregate


    AddTarget.png Aggregate.png 添加脚本.png 脚本.png

    将下面的脚本代码复制粘贴到上图中

    if [ "${ACTION}" = "build" ]
    then
    
    
    
    #要build的target名
    target_Name=${PROJECT_NAME}
    echo "target_Name=${target_Name}"
    
    
    #build之后的文件夹路径
    build_DIR=${SRCROOT}/build
    echo "build_DIR=${build_DIR}"
    
    #真机build生成的头文件的文件夹路径
    DEVICE_DIR_INCLUDE=${build_DIR}/Release-iphoneos/include/${PROJECT_NAME}
    echo "DEVICE_DIR_INCLUDE=${DEVICE_DIR_INCLUDE}"
    
    #真机build生成的.a文件路径
    DEVICE_DIR_A=${build_DIR}/Release-iphoneos/lib${PROJECT_NAME}.a
    echo "DEVICE_DIR_A=${DEVICE_DIR_A}"
    
    #模拟器build生成的.a文件路径
    SIMULATOR_DIR_A=${build_DIR}/Release-iphonesimulator/lib${PROJECT_NAME}.a
    echo "SIMULATOR_DIR_A=${SIMULATOR_DIR_A}"
    
    
    #目标文件夹路径
    INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}
    echo "INSTALL_DIR=${INSTALL_DIR}"
    
    #目标头文件文件夹路径
    INSTALL_DIR_Headers=${SRCROOT}/Products/${PROJECT_NAME}/Headers
    echo "INSTALL_DIR_Headers=${INSTALL_DIR_Headers}"
    
    #目标.a路径
    INSTALL_DIR_A=${SRCROOT}/Products/${PROJECT_NAME}/lib${PROJECT_NAME}.a
    echo "INSTALL_DIR_A=${INSTALL_DIR_A}"
    
    
    #判断build文件夹是否存在,存在则删除
    if [ -d "${build_DIR}" ]
    then
    rm -rf "${build_DIR}"
    fi
    
    #判断目标文件夹是否存在,存在则删除该文件夹
    if [ -d "${INSTALL_DIR}" ]
    then
    rm -rf "${INSTALL_DIR}"
    fi
    #创建目标文件夹
    mkdir -p "${INSTALL_DIR}"
    
    
    #build之前clean一下
    xcodebuild -target ${target_Name} clean
    
    #模拟器build
    xcodebuild -target ${target_Name} -configuration Release -sdk iphonesimulator
    
    #真机build
    xcodebuild -target ${target_Name} -configuration Release -sdk iphoneos
    
    #复制头文件到目标文件夹
    cp -R "${DEVICE_DIR_INCLUDE}" "${INSTALL_DIR_Headers}"
    
    #合成模拟器和真机.a包
    lipo -create "${DEVICE_DIR_A}" "${SIMULATOR_DIR_A}" -output "${INSTALL_DIR_A}"
    
    #打开目标文件夹
    open "${INSTALL_DIR}"
    
    
    fi
    

    5、编译(command+B)


    编译选项.png 编译成功.png

    Demo https://github.com/ITHanYong/StaticLibrary2.git

    相关文章

      网友评论

        本文标题:iOS .a静态库生成(二)

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