专栏名称: Cocoa开发者社区
CocoaChina苹果开发中文社区官方微信,提供教程资源、app推广营销、招聘、外包及培训信息、各类沙龙交流活动以及更多开发者服务。
目录
相关文章推荐
51好读  ›  专栏  ›  Cocoa开发者社区

iOS项目中SDK的开发与调试

Cocoa开发者社区  · 公众号  · ios  · 2017-08-23 11:52

正文

公司最近要开发一个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}"







请到「今天看啥」查看全文