1.工作区(WorkSpace)结构
1.1 创建工作区
-
新建一个目录
LWTestSDK
创建WorkSpace
结构,选择新建的目录创建成功,打开
.xcworkspace
工程.
1.2创建一个Project
-
首先创建一个集成SKD的Demo
-
成功之后示例
1.3创建SDK工程之Framework工程
-
1.3.1 新建一个Project
选择
Framework
,选择第一步创建的WorkSpace
(和图1的选择一样),这样就创建好了. framework
工程成功之后示例
-
1.3.2 添加SDK文件
添加新文件,对外暴露的文件进行设置。
-
1.3.3 修改配置
SDK的Framework工程已经创建完毕,修改其中的配置
在
Build Settings
- 在
Other Linker Flage
下添加一个-fembed-bitcode
,增加Bitcode
支持 - 修改
Mach-O Type
为Static Library
- 修改
Build Active Architecture Only
为NO
- 在
-
1.3.4 新建Aggregate
-
1.3.5 添加脚本到
Run Script
自动合成.framework
包选中创建的Aggregate,然后选择
Build Phases
,点击左上角的加号,选择New Run Script Phases
生成Run Script
把以下脚本代码复制到
Run Script
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生成的.framework文件路径 DEVICE_DIR_A=${build_DIR}/Release-iphoneos/${PROJECT_NAME}.framework echo "DEVICE_DIR_A=${DEVICE_DIR_A}" #模拟器build生成的.framework文件路径 SIMULATOR_DIR_A=${build_DIR}/Release-iphonesimulator/${PROJECT_NAME}.framework echo "SIMULATOR_DIR_A=${SIMULATOR_DIR_A}" #目标文件夹路径 INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME} echo "INSTALL_DIR=${INSTALL_DIR}" #目标.framework路径 INSTALL_DIR_A=${SRCROOT}/Products/${PROJECT_NAME}/${PROJECT_NAME}.framework 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 #创建目标文件夹 -p会创建中间目录 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_A}" "${INSTALL_DIR_A}" #合成模拟器和真机.framework包 lipo -create "${DEVICE_DIR_A}/${PROJECT_NAME}" "${SIMULATOR_DIR_A}/${PROJECT_NAME}" -output "${INSTALL_DIR_A}/${PROJECT_NAME}" #打开目标文件夹 open "${INSTALL_DIR}" fi
-
1.3.6 编译获取
.framework
包command+B直接编译,产生.framework。
2.将产生的SDK和SDK的集成Demo进行关联
-
将编译产生的framework包,导入到Demo
-
使用SDK,运行Demo
-
运行结果如下
-
这时候SDK跟Demo就关联起来了,此时修改下面SDK中的代码,运行demo就是修改后的效果,然后就可以愉快的在这个工程里面开发调试SDK了,如果我把LWView的颜色设置为orange,再去运行demo,看一下效果
最后的最后,把这个工程上传到Git代码传送门就可以愉快的开发了。。。以上是我个人的理解,如有错误,请各位大牛批评指正,文中framework的打包方法参考网上资料
参考链接