公司最近要开发一个SDK,不知如何下手,请教了一个有SDK开发经验的同事,也在网上查了些资料,决定整理一下。整体上讲就是在SVN上创建一个项目路径,再用Xcode创建一个项目工程,把项目工程上传到SVN上就可以开发了,这里只讨论项目工程的创建。
一、创建一个workspace
1、在桌面上创建一个文件夹MyTestSDK(名字自己取)
2、打开Xcode,创建一个workspace,路径放到文件夹MyTestSDK里面,Xcode---File---New---Workspace
创建workspace
之后可以看到MyTestSDK文件夹里面多了一个.xcworkspace文件
二、创建SDK
1、打开MyTestSDK.xcworkspace文件,创建project
创建project
选择Cocoa Touch Framework
创建framework
把framework添加到workspace里面
添加framework
添加之后的效果图
效果
三、创建Demo
1、打开MyTestSDK.xcworkspace文件,创建project
创建project
2、选择Single View Application
选择single view application
3、添加application到workspace
添加application
最终效果图
效果图
从上图可以看出,上面是demo,下面是sdk,怎么把这两者关联起来呢????????
四、Demo的关联以及SDK的开发调试
1、把SDK打包成framework
这个步骤网上有很多种教程,这里就取其中一个,其他方法有兴趣的同学可以自己研究
参考:
qingmang.me/articles/5162103427194116731/
这里创建一个MyView类,继承于UIView,简单的重写了初始化方法,设置了颜色
创建一个类
设置Build Setting参数
设置参数
更改参数,在Architectures下增加armv7s,并选中。将Build Active Architecture only设置为NO
更改参数
设置Headers,将要公开的头文件拖到Public下,要隐藏的放到Private或Project下,隐藏的头文件不能被引用
头文件
然后需要在MyTestSDK.h(必须是公开的,否则无法引用)中将所有要公开的.h引入
引入头文件
创建一个Aggregare
嵌入脚本,选中刚刚创建的Aggregare,然后选中右侧的Build Phases,点击左边的+号,选择New Run Script Phases
下面把这段脚本复制进去(格式不要错,格式错编译不通过)
# Sets the target folders and the final framework product.
# 如果工程名称和Framework的Target名称不一样的话,要自定义FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output to the framework.
# The following line create it in the root
folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# -configuration ${CONFIGURATION}
# Clean and Building both architectures.
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build
# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"