当前位置 : 主页 > 手机开发 > ios >

Xcode 将静态库转为动态库、多个库合并

来源:互联网 收集:自由互联 发布时间:2021-06-11
cocoapods中使用了 use_frameworks! 选项后, 就需要我们的组件或第三方库支持dynamic Framework,否则就无法集成。我们自己的组件尚且好处理,将Xcode项目配置文件修改一下,或者建一个新的

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 将静态库转为动态库、多个库合并

网友评论