美文网首页
封装静态库framework

封装静态库framework

作者: huohuitong | 来源:发表于2020-08-10 15:06 被阅读0次

    1. 创建framework工程  

    2. 设置属性  

    TAGETS -> Build Settings -> Base SDK 设置为iOS;

    TAGETS -> Build Settings -> Build Active Architecture Only 设置为NO;

     TAGETS ->Grneral->deployment Info 设置为  device和支持版本;

     TAGETS -> Build Settings -> Dead Code Stripping 设置为  NO;

     TAGETS -> Build Settings -> Link With Standard Libraries  设置为 NO;

     TAGETS -> Build Settings -> Mach-O Type 设置为 Static Library;

    3.添加文件到工程中

    如需公开文件则在TAGETS -> Build Phases ->Headers中从Progect一道Public中,

    并在XXDemo.h中引入文件即可

        #import <XXDemo/XXDemoConfig.h>

    4. 封装Bundle资源库  

    command+shift+N创建新工程,选中macOS,选中Bundle创建bundle工程  

    创建bundle 修改为iOS SDK 修改支持最低版本

    TAGETS -> Build Settings -> COMBINE_HIDPI_IMAGES 设置为NO;

    设置

    添加资源文件到bundle工程中并build;

    结果

    最终showInFinder .bundle文件获取到资源文件,添加到framework中

    5. 自动打包  

     Editor -> Add Target -> Cross Platform->Package创建自动打包package

    打包1 创建脚本

    添加脚本  

        TARGET_NAME=${PROJECT_NAME}

    if[[ $1]]

    then

    TARGET_NAME=$1

    fi

    UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/Products/"

    #创建输出目录,并删除之前的framework文件

    mkdir -p"${UNIVERSAL_OUTPUT_FOLDER}"

    rm -rf"${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework"

    #分别编译模拟器和真机的Framework

    xcodebuild -target"${TARGET_NAME}"ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}"BUILD_ROOT="${BUILD_ROOT}"clean build

    xcodebuild -target"${TARGET_NAME}"ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}"BUILD_ROOT="${BUILD_ROOT}"clean build

    #拷贝framework到univer目录

    cp -R"${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework""${UNIVERSAL_OUTPUT_FOLDER}"

    #合并framework,输出最终的framework到build目录

    lipo -create -output"${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/${TARGET_NAME}""${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}""${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}"

    #删除编译之后生成的无关的配置文件

    dir_path="${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/"

    forfileinls $dir_path

    do

    if[[ ${file} =~".xcconfig"]]

    then

    rm -f"${dir_path}/${file}"

    fi

    done

    #判断build文件夹是否存在,存在则删除

    if[ -d"${SRCROOT}/build"]

    then

    rm -rf"${SRCROOT}/build"

    fi

    rm -rf"${BUILD_DIR}/${CONFIGURATION}-iphonesimulator""${BUILD_DIR}/${CONFIGURATION}-iphoneos"

    #打开合并后的文件夹

    open"${UNIVERSAL_OUTPUT_FOLDER}"

    最后选择package build打包成功

    相关文章

      网友评论

          本文标题:封装静态库framework

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