美文网首页
iOS 输出混合指令集的framework

iOS 输出混合指令集的framework

作者: 赵永洪 | 来源:发表于2020-05-12 11:31 被阅读0次

    背景

    每一个build后只会得到单一指令集的framework,例如x86_64arm64。

    一般发布时只会用到arm64指令集(armv7太老可以不用考虑),但是提供framework给其他人用时,难免会用到混合指令集的framwork。

    lipo 模拟器framework/包名 真机framework/包名 -create -output 混合framework/包名

    脚本

    #配置

    CURRENT_DIR=`pwd`

    #build后的真机、模拟器的framework路径

    FRAMEWORK_NAME="${PROJECT_NAME}"

    SMIULATOR_FAMEWORK_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"

    DEVICE_FAMEWORK_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework"

    #universal为混合framework路径

    UNIVERSAL_DIR="${CURRENT_DIR}/BuildUniversal"

    UNIVERSAL_FAMEWORK_PATH="${UNIVERSAL_DIR}/${FRAMEWORK_NAME}.framework"

    # ${CONFIGURATION} 表示的是配置的模式Debug或Release,这里我Xcode配置的是Debug

    # CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator 指定build的生成路径,在这里指的是DerivedData的地址

    xcodebuild -arch x86_64 -sdk iphonesimulator -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphonesimulator

    xcodebuild -sdk iphoneos -configuration ${CONFIGURATION} clean build CONFIGURATION_BUILD_DIR=${BUILD_DIR}/${CONFIGURATION}-iphoneos

    #每次都需要删除旧的文件夹

    rm -rf "${UNIVERSAL_DIR}"

    mkdir "${UNIVERSAL_DIR}"

    #这里创建的framework是空的,没有二进制文件

    mkdir "${UNIVERSAL_FAMEWORK_PATH}"

    #这里把真机的framework内容完全复制到universal中(也是模拟器,目的是让framework中有内容)

    cp -r "${DEVICE_FAMEWORK_PATH}/." "${UNIVERSAL_FAMEWORK_PATH}"

    #合并模拟器、真机framework中的二进制文件到universal的二进制文件

    lipo "${SMIULATOR_FAMEWORK_PATH}/${FRAMEWORK_NAME}""${DEVICE_FAMEWORK_PATH}/${FRAMEWORK_NAME}" -create -output "${UNIVERSAL_FAMEWORK_PATH}/${FRAMEWORK_NAME}"

    先设置模拟器包路径、真机包路径,还有混合包路径

    分别编译模拟器、真机

    先删除混合包路径,再创建,并且拷贝一个真机包到混合路径

    执行lipo命令输出到混合路径

    注意:

    混合包输出路径在当前工程BuildUniversal

    默认包名和工程名一致,不一致时手动修改FRAMEWORK_NAME

    添加脚本

    在这里粘贴脚本,选择刚才创建的target就可以build生成混合指令集的framework

    相关文章

      网友评论

          本文标题:iOS 输出混合指令集的framework

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