美文网首页
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