-
首先创建一个Framework工程,工程名就是Framework名
屏幕快照 2018-09-26 下午4.22.59.png
-
添加Framework类文件
屏幕快照 2018-09-26 下午4.25.02.png
这里添加了一个Person类,添加的类文件会在build phases中可以看到,
pulic里面的是打包之后暴露出来的类文件,
project是打包之后隐藏的类文件,这里可以通过拖拽进行相互移动

文件准备齐全了,就可以开始准备打包:
- build setting 里面的mach-O Type选择Static Libraty, 打包为静态库

2.Defines Module 修改为NO

3.设置framework支持的最低版本

- 选择真机编译一次,生成真机的Framework

选择模拟器编译一次,生成模拟器的Framework

基本设置完成后就可以打包了,添加打包工具aggregate,进行两个包的合并了,名字随便取

- 添加一个run script

- 添加脚本代码,是合并模拟器版本的Framework和真机版本的Framework版本

这里有一份通用的固定代码
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
- 选择aggregate, 选择generic iOS Device

- commed + B编译一下,succeed成功后, show in finder工程文件,就能看到一个Products文件,里面就是合并真机和模拟器的Framework了


注意: 不要直接show in finder工程里面的Product文件, 这样只能看到两个真机和模拟器分开版本的Framework
网友评论