Xcode制作framework流程
在日程项目开发中可以使用用framework打包的静态库能够包含图片、xib等资源。
而用.a打包的静态库,我们需要再建立一个Bundle文件来包含图片、xib等资源
- 首先创建一个 framework 项目
- 将构建阶段的执行文件类型设置成 static 类型/如果动态库,则选择 dynamic 类型
- 设置 framework 支持多种架构配置(Architecture 的配置)
真机(armv7=3gs-4s,armv7s=5-5c, arm64=5s-6plus)
模拟器(i386=3gs-5,x86_64=5s-6plus)
- 将 xib、图像资源包含到 framework 中,将需要暴露的.h 文件放在 Public 中,将需要编译的.m 文件放在 Compile Sources
- 在构建 framework 时自动生成的头文件中加入要 exposure 的头文件.h,否则会报 Warning
-
选择真机/模拟器,Command+B 编译,生成只支持真机/模拟器的静态库
-
在Finder中通过右键 Show In Finder 找到对应的静态库
- 对于真机和模拟器生成的 .framework 进行验证( Terminal-终端 验证)
使用Aggregate制作通用的framework
制作通用库主要利用到Aggregate,其主要有两个特性
1、能给一次编译多个target
2、能够在编译的时候运行自定义脚本(target也可以)
- 先创建一个Aggregate 文件
- 编写自定义 shell 脚本
#####脚本命令
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}/"
lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"
open "${SRCROOT}/Products"
fi