美文网首页
iOS 开发自己的SDK--Cocoa Touch Framew

iOS 开发自己的SDK--Cocoa Touch Framew

作者: Ching_Han | 来源:发表于2018-11-06 18:13 被阅读21次

    真机&模拟器 Framework 脚本自动合并

    # 设置 framework 名称
    FMK_NAME="XXXXXX"
    
    # 合并后的 framework 将在此文件夹中生成
    INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
    
    # framework 生成后,移除 build 文件夹
    WRK_DIR=build
    DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
    SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
    
    # 分别编译模拟器和真机的 framework
    xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos build
    xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator build
    
    # 清理旧文件 创建新文件
    if [ -d "${INSTALL_DIR}" ]
    then
    rm -rf "${INSTALL_DIR}"
    fi
    mkdir -p "${INSTALL_DIR}"
    cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
    cp -R "${SIMULATOR_DIR}/" "${INSTALL_DIR}/"
    
    # 合并真机和模拟器的 framework
    lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
    
    # 移除 biuld 文件夹
    rm -r "${WRK_DIR}"
    
    # 自动打开 products 文件夹
    open "${INSTALL_DIR}"
    
    

    说明:此脚本需要使用 aggregate 运行,具体操作流程 :

    • 添加 target -> 选择 Cross-platform 选项卡 -> 选择 aggregate;
    • 设置 Product Name;
    • 添加 Run Script Phase(拷贝上面的命令);
    • Xcode 选中此 target,Run 设置为 Release,编译通过后,会自动打开 product 文件夹,里面有合并后的静态库。
    • 很多文章的介绍在 xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos build 命令中, build 之前做了 clean 操作,测试后这样并不能正常合并,product 文件夹只有支持模拟器的静态库,去掉 clean 命令后可以正常合并。

    以上为个人开发总结,至此 iOS Framework 静态库开发应该算比较完整了,如有错误,欢迎批评指正!

    相关文章

      网友评论

          本文标题:iOS 开发自己的SDK--Cocoa Touch Framew

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