cocoapods中使用了 use_frameworks! 选项后, 就需要我们的组件或第三方库支持dynamic Framework,否则就无法集成。我们自己的组件尚且好处理,将Xcode项目配置文件修改一下,或者建一个新的dynamic Framework工程,将代码拉进来,重新编译导出一下。
但是第三方库我们应该如何处理呢?很多时候我们拿到的只是编译过后的 .a 或者是 .framework 文件,
静态库打包成Framework
注意:仅作为把第三方库打包成Framework,不做额外封装工作。
步骤1
创建Framework工程
Git:https://gitlab.qianbaocard.org/iOS-modules/function/lib
命名:WL+第三方库名
步骤2
部署代码
把第三方代码拖进工程Lib文件夹
把所有头文件拖进工程Headers文件夹
步骤3
工程配置
General->DeploymentTarget->8.0
BuildSettings->OtherLinkerFlags->-ObjC
添加三方库所需要的配置
BuildPhases->Headers->把所有头文件拖进Public
步骤4
添加脚本(用于合并Release,iphonesimulator)
BuildPhases->RunScript
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
步骤5
编译
选择模拟器运行一遍
选择设备运行一遍
步骤6
编写Pod
s.vendored_frameworks=’Products/*.framework’
完成
原文:大专栏 Xcode 将静态库转为动态库、多个库合并