美文网首页
使用Aggregate合并真机和模拟器framework

使用Aggregate合并真机和模拟器framework

作者: 赵琛 | 来源:发表于2019-11-01 15:49 被阅读0次

    最近把项目中开户模块抽出来,打成了静态库framework给第三方使用,framework打包网上有太多教程就不记录了,刚开始合并真机和模拟器framework使用的是命令行,操作如下,具体路径自己修改:

    lipo -create /Users/debang/Library/Developer/Xcode/DerivedData/tebonOpenAccountSDK-bmwoxwyezgfywccomtljhyljptdd/Build/Products/Debug-iphoneos/tebonOpenAccountSDK.framework/tebonOpenAccountSDK /Users/debang/Library/Developer/Xcode/DerivedData/tebonOpenAccountSDK-bmwoxwyezgfywccomtljhyljptdd/Build/Products/Debug-iphonesimulator/tebonOpenAccountSDK.framework/tebonOpenAccountSDK -output /Users/debang/Desktop/framework/tebonOpenAccountSDK
    

    比较麻烦,后来发现使用新建target Aggregate用脚本的方式合并,下面介绍下具体操作。

    1.新建Aggregate target,注意Aggregate target的名称不要和framework名一样


    屏幕快照 2019-11-01 下午3.34.22.png

    2.然后添加脚本


    屏幕快照 2019-11-01 下午3.35.54.png

    3.之前在网上找的脚本很多在新版本的xcode中都不能使用了,那是因为生成脚本的时候是在项目文件目录进行操作, 之前脚本中的xcodebulid clean 指令删除了当前的编译文件导致不能使用,下面的脚本亲测可用:

    if [ "${ACTION}" = "build" ]
    then
    INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework
    DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework
    SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework
    if [ -d "${INSTALL_DIR}" ]
    then
    rm -rf "${INSTALL_DIR}"
    fi
    mkdir -p "${INSTALL_DIR}"
    cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
    #ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"
    lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"
    open "${DEVICE_DIR}"
    open "${SRCROOT}/Products"
    fi
    

    4.copy到这里


    屏幕快照 2019-11-01 下午3.41.04.png

    5.选择Generic iOS Device进行编译


    屏幕快照 2019-11-01 下午3.42.28.png

    6.编译过程需要一段时间,然后会自动弹出来framework

    相关文章

      网友评论

          本文标题:使用Aggregate合并真机和模拟器framework

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