项目中 经常会有需求让我们把项目的公共模块 打包做成静态库的,最近两天实验了一下,参照其他的人写的攻略,下面写一下具体的流程吧 ^_^
创建iOS动态库
新建工程并选择默认Target为Cocoa Touch Framework, 如图:
创建静态库工程编码只写了一个 MyUtils 类,打印log的方法
创建静态库测试类MyUtils设置可供其他人观看阅读的头文件,需要看到的类 放到Public, 其他的放到 Private和 Project下
添加文件把 framework文件导入测试工程后,显示暴露的头文件
导入静态库静态库的生成: 分为 Debug版和 Release版
选择生成版本静态库的生成版本:分为 模拟器版和真机版
静态库版本修改生成 公用的静态库 配置 将 linking->Mach-o Type 改为 Static Library
修改配置制作通用动态库
新建Aggregate Target
创建target 添加script到新建的Target 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
选中新建的Target,Run, 如果没有异常的话,会自动弹出生成的Framework文件
这样生成的动态库就能同时支持模拟器和真机了。
希望能有帮助哈,^_^
网友评论