iOS SDK开发,调试,真机,模拟器打包注意
头一次搞这SDK开发,有点头大,只能一步一步摸着石头过河了~
剑来镇压图
![](https://img.haomeiwen.com/i2597008/399614f3daef78fa.jpeg)
一、创建一个workspace + SDK project
1.先在桌面创建一个文件夹--->YjcSDK
![](https://img.haomeiwen.com/i2597008/37250dc9b8dd3c87.png)
2.创建一个workspace项目 到 文件夹--->YjcSDK
![](https://img.haomeiwen.com/i2597008/9ee8ac610593c34d.png)
3,创建project 选择 Cocoa Touch FranmeWork
![](https://img.haomeiwen.com/i2597008/6725a8c413c83ec7.png)
![](https://img.haomeiwen.com/i2597008/47decf9158718506.png)
注意: Add to 需要 换成刚刚创建的 workSpace
![](https://img.haomeiwen.com/i2597008/7253a58944dab5b0.png)
SDK创建OK
![](https://img.haomeiwen.com/i2597008/6f9f71d5cd73cf20.png)
4,SDK 添加代码 我这里添加一个View
![](https://img.haomeiwen.com/i2597008/3c5c38fac31f54e8.png)
5.修改一些配置
- 设置Build Setting参数将Build Active Architecture only设置为NO
![](https://img.haomeiwen.com/i2597008/f7c7f64f10211bd8.png)
-
Mach-o type 修改为Static Librayr
image.png
-
设置Headers,将要公开的头文件拖到Public下,要隐藏的放到Private或Project下,隐藏的头文件不能被引用
我是想让SDK YjcView.h文件 可以被访问,所以需要将其添加到 public
拖拽.h文件到 public
![](https://img.haomeiwen.com/i2597008/721194305d13476f.png)
6.在YjcSDK.h 中将所有要公开的.h引入
![](https://img.haomeiwen.com/i2597008/abee6622cdaa295e.png)
7.脚本导出 framwork 创建一个Aggregare
必需得先点击targets
![](https://img.haomeiwen.com/i2597008/5fc37a4ceed3f922.png)
![](https://img.haomeiwen.com/i2597008/a0d0f80b4fdd794c.png)
![](https://img.haomeiwen.com/i2597008/3af67bc7990f21d5.png)
![](https://img.haomeiwen.com/i2597008/64747665f7263689.png)
接下来将一段代码 复制
#**************************************************************************************************************
# 增加这个Target,并使用脚本编译,主要是为了制作支持模拟器的framework, 该Target编译生成的是生产版本,编译输出的framework保存在
# 工程文档所在目录的Products子目录中,输出包括两个,一个是支持模拟器的版本,另一个是用于上传到App Store的版本,之所以要单独制作一
# 个用于上传App Store的版本,是因为支持模拟器的版本包括x86_64及i386框架,上传App Store时不被苹果允许
#**************************************************************************************************************
# 如果工程名称和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_AppStore=${SRCROOT}/Products/AppStore发布版本/${FMK_NAME}.framework
INSTALL_DIR_Simulator=${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
#将编译生成的framework拷贝到Products目录
#先拷贝正常的,用于发布到App Store的版本
# Cleaning the oldest.
if [ -d "${INSTALL_DIR_AppStore}" ]
then
rm -rf "${INSTALL_DIR_AppStore}"
fi
cp -R "${DEVICE_DIR}" "${INSTALL_DIR_AppStore}"
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build
#然后制作支持模拟器的能用版本
if [ -d "${INSTALL_DIR_Simulator}" ]
then
rm -rf "${INSTALL_DIR_Simulator}"
fi
cp -R "${SIMULATOR_DIR}" "${INSTALL_DIR_Simulator}"
lipo -create "${INSTALL_DIR_AppStore}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR_Simulator}/${FMK_NAME}"
#删除临时编译目录
rm -r "${WRK_DIR}"
#打开输入文件夹
open "${SRCROOT}/Products"
#结束
![](https://img.haomeiwen.com/i2597008/fe0a7f951426f878.png)
8.选择 MySDK command + B 编译,导出framwork
![](https://img.haomeiwen.com/i2597008/836c3e42e30b798e.png)
会报错的,因为有两个路径不对 不存在
![](https://img.haomeiwen.com/i2597008/5903f1c341a4df33.png)
这是因为在添加 脚本代码的时候 没有如图存在的两个路径
![](https://img.haomeiwen.com/i2597008/bd1e68dffe881aef.png)
所以需要添加几个文件夹,(名字一段要和脚本代码里面的对应好)
![](https://img.haomeiwen.com/i2597008/8789108805be6f61.png)
重新 command + B 编译:(编译一定要选对)
![](https://img.haomeiwen.com/i2597008/e907d8df0468ed8d.png)
成功之后 会自动弹出
![](https://img.haomeiwen.com/i2597008/644508eb72c5d1f1.png)
注意:此处为什么是 分为不同版本:
# 增加这个Target,并使用脚本编译,主要是为了制作支持模拟器的framework, 该Target编译生成的是生产版本,编译输出的framework保存在
# 工程文档所在目录的Products子目录中,输出包括两个,一个是支持模拟器的版本,另一个是用于上传到App Store的版本,之所以要单独制作一
# 个用于上传App Store的版本,是因为支持模拟器的版本包括x86_64及i386框架,上传App Store时不被苹果允许
至此 简易的SDK 是做成功了
二,如何使用SDK
1.创建一个demo,
![](https://img.haomeiwen.com/i2597008/f37151ddf1a77078.png)
2.将之前 打包出来的 framework 拖到项目中:(我用模拟器)
![](https://img.haomeiwen.com/i2597008/c4895e986548a000.png)
3.导入SDK 头文件 在ViewController中添加SDK中的YjcView
![](https://img.haomeiwen.com/i2597008/7eb885c949bb9bce.png)
4.最终展示
![](https://img.haomeiwen.com/i2597008/5aace4e9305100f3.png)
3.调试
我如果想更换颜色,是不是还得 改变颜色 然后再打包 拖入?(tei麻烦了)
1.将之前的framework 删掉
![](https://img.haomeiwen.com/i2597008/e154d1a02ea737f7.png)
![](https://img.haomeiwen.com/i2597008/e97f631bb60829e3.png)
![](https://img.haomeiwen.com/i2597008/8783f50f810b8cd5.png)
2.我将颜色 直接改为 黄色 (先不要急着运行,先clear 一遍),结果颜色 还是没变
![](https://img.haomeiwen.com/i2597008/9962e593585e60e7.png)
(尴尬的一匹~)
![](https://img.haomeiwen.com/i2597008/a9883ca1798832dc.png)
这里是没有静态库的 所以!
![](https://img.haomeiwen.com/i2597008/36b07e157b81a652.png)
![](https://img.haomeiwen.com/i2597008/b0974c34154daa7b.png)
OK
![](https://img.haomeiwen.com/i2597008/7b89514343648b21.png)
至此 调试就OK了
但是: 上架的时候,肯定要的是framework ,所以需要删除 如图以下的project,我点击右键 delete 然后 Move to trash 导致SDK 中 project给没了!!!没了!!没了!
一身冷汗~ 注意了 我是这样做的,remove reference 删除引用 而不是放到废纸篓........
![](https://img.haomeiwen.com/i2597008/3077b8194de8a2ff.png)
![](https://img.haomeiwen.com/i2597008/3d877618368111ad.png)
4,打包上架App
记得SDK 需要切换到
![](https://img.haomeiwen.com/i2597008/3a48d62e94faa7db.png)