1.新建一个项目,File->Project->iOS->Framework,取名MyFramework,



2.设置配置,设置支持iOS系统的最低版本以及支持的设备 --TARGETS->Genearl->Deployment

3.更改TARGETS->Build Setting中以下设置:





4.添加要制作的SDK代码,创建一个继承NSObject的类Cat,声明并实现一个带返回值的方法:


5.配置公开文件


6.SDK打包,将Product ->Scheme->Edit Scheme->Run->Build Configuration修改为release

7.生成真机与模拟器使用的framework包,
(1)真机包:模拟器选中Any iOS Device选项,Command + B编译生成真机包;
(2)模拟包:模拟器选中任一型号机型,Commond + B编译生成模拟包。


8.编译之后查看生成的Framework


9.合并真机包与模拟包
输入脚本语言,模拟器选中Any iOS Device选项,Command + B编译合并完成,弹出完成后的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

10.新建工程,命为test,将生成的Framework导入新工程中,引入头文件#import<MyFramework/MyFramework.h>,编译成功。

网友评论