前言:在SDK开发Framework打包时,已经创建好了WorkSpace工作区,现在在工作区创建.a包的开发工程。
代码传送门
1.创建生成.a工程
-
1.1 新建一个Project
image选择
imageStatic Library
,选择第一步创建的WorkSpace
(和SDK开发一中的图1的选择一样),这样就创建好了. a
工程成功之后的示例
image -
1.2 添加SDK文件
添加新文件,将需要暴露的文件进行设置
选择工程-->>选择
imageTARGETS
下的SDK工程-->>Build Phases
-->>Copy Files
-
1.3 新建Aggregate
创建Aggregate -
1.4 添加脚本到
Run Script
自动合成.a
包选中创建的Aggregate,-->>
imageBuild Phases
-->> 点击左上角的加号-->> 选择New Run Script Phases
-->> 生成Run Script
把以下脚本代码复制到
Run Script
SDK脚本嵌入if [ "${ACTION}" = "build" ] then #要build的target名 target_Name=${PROJECT_NAME} echo "target_Name=${target_Name}" #build之后的文件夹路径 build_DIR=${SRCROOT}/build echo "build_DIR=${build_DIR}" #真机build生成的头文件的文件夹路径 DEVICE_DIR_INCLUDE=${build_DIR}/Release-iphoneos/include/${PROJECT_NAME} echo "DEVICE_DIR_INCLUDE=${DEVICE_DIR_INCLUDE}" #真机build生成的.a文件路径 DEVICE_DIR_A=${build_DIR}/Release-iphoneos/lib${PROJECT_NAME}.a echo "DEVICE_DIR_A=${DEVICE_DIR_A}" #模拟器build生成的.a文件路径 SIMULATOR_DIR_A=${build_DIR}/Release-iphonesimulator/lib${PROJECT_NAME}.a echo "SIMULATOR_DIR_A=${SIMULATOR_DIR_A}" #目标文件夹路径 INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME} echo "INSTALL_DIR=${INSTALL_DIR}" #目标头文件文件夹路径 INSTALL_DIR_Headers=${SRCROOT}/Products/${PROJECT_NAME}/Headers echo "INSTALL_DIR_Headers=${INSTALL_DIR_Headers}" #目标.a路径 INSTALL_DIR_A=${SRCROOT}/Products/${PROJECT_NAME}/lib${PROJECT_NAME}.a echo "INSTALL_DIR_A=${INSTALL_DIR_A}" #判断build文件夹是否存在,存在则删除 if [ -d "${build_DIR}" ] then rm -rf "${build_DIR}" fi #判断目标文件夹是否存在,存在则删除该文件夹 if [ -d "${INSTALL_DIR}" ] then rm -rf "${INSTALL_DIR}" fi #创建目标文件夹 mkdir -p "${INSTALL_DIR}" #build之前clean一下 xcodebuild -target ${target_Name} clean #模拟器build xcodebuild -target ${target_Name} -configuration Release -sdk iphonesimulator #真机build xcodebuild -target ${target_Name} -configuration Release -sdk iphoneos #复制头文件到目标文件夹 cp -R "${DEVICE_DIR_INCLUDE}" "${INSTALL_DIR_Headers}" #合成模拟器和真机.a包 lipo -create "${DEVICE_DIR_A}" "${SIMULATOR_DIR_A}" -output "${INSTALL_DIR_A}" #打开目标文件夹 open "${INSTALL_DIR}" fi
-
1.5 编译获取
.a
包
生成framework包command+
B直接编译,产生.a。
2.将产生的SDK和SDK的集成Demo进行关联
-
将编译产生的.b包所在目录,导入到Demo
image -
使用SDK,运行Demo
image -
运行结果如下
运行结果首页 点击按钮跳转到.a内的页面
最后的最后,把这个工程上传到Git就可以愉快的开发了。。。以上是我个人的理解,如有错误,请各位大牛批评指正,文中.a的打包方法参考网上资料
参考链接
网友评论