制作.framework

1.新建.framework(如图)

2.静态库的名字根据需求填写

3.点击下一步如下图

4.设置静态库的配置

5.分别设置
Build Settings >> Dead Code Stripping >> 设置为NO
Build Settings >> Link With Standard Libraries >> 设置为 NO
Build Settings >> Mach-O Type >> Static Library
对于Mach-O Type:选择 Static Library 打包得到的是静态库

6.新建并编写你要封装的方法及实现

7.选择frameworkDemo的target Build Phases 中Headers,把需要暴露的.h文件放在Public

7.制作通用的framework(用命令行合并这里就不讲了,这里用脚本合并)

8.名字随便取,只要不和上面的静态库的名字一致就可以了(我这里取得是:frameworkDemoTagret)

9.给frameworkDemoTagret添加脚本文件

10.复制脚本

FMK_NAME=${PROJECT_NAME}
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${SRCROOT}/Products/"

11.如图所示

12.选择frameworkDemoTagret scheme 并且这时不要选择任何真机或者模拟器

13.点击编译,编译成功会弹出Products文件夹出来,里面就是兼容了真机和模拟器的framework

14.把framework加入新的工程,导入头文件,就可以调相应的方法了。

猜你喜欢

转载自www.cnblogs.com/li-jing-jing/p/10878895.html