iOS SDK开发,调试,真机,模拟器打包注意

头一次搞这SDK开发,有点头大,只能一步一步摸着石头过河了~

剑来镇压图

iOS SDK开发,调试,真机,模拟器打包注意_第1张图片
剑来

一、创建一个workspace + SDK project

1.先在桌面创建一个文件夹--->YjcSDK


iOS SDK开发,调试,真机,模拟器打包注意_第2张图片
WeChat748916a50cd2b4ebe253dcd2f1ba6176.png

2.创建一个workspace项目 到 文件夹--->YjcSDK

iOS SDK开发,调试,真机,模拟器打包注意_第3张图片
image.png

3,创建project 选择 Cocoa Touch FranmeWork


iOS SDK开发,调试,真机,模拟器打包注意_第4张图片
image.png

iOS SDK开发,调试,真机,模拟器打包注意_第5张图片
image.png

注意: Add to 需要 换成刚刚创建的 workSpace

iOS SDK开发,调试,真机,模拟器打包注意_第6张图片
image.png

SDK创建OK
iOS SDK开发,调试,真机,模拟器打包注意_第7张图片
image.png

4,SDK 添加代码 我这里添加一个View
iOS SDK开发,调试,真机,模拟器打包注意_第8张图片
image.png

5.修改一些配置

  • 设置Build Setting参数将Build Active Architecture only设置为NO
iOS SDK开发,调试,真机,模拟器打包注意_第9张图片
image.png
  • Mach-o type 修改为Static Librayr


    iOS SDK开发,调试,真机,模拟器打包注意_第10张图片
    image.png
  • 设置Headers,将要公开的头文件拖到Public下,要隐藏的放到Private或Project下,隐藏的头文件不能被引用

我是想让SDK YjcView.h文件 可以被访问,所以需要将其添加到 public
拖拽.h文件到 public

iOS SDK开发,调试,真机,模拟器打包注意_第11张图片
image.png

6.在YjcSDK.h 中将所有要公开的.h引入


iOS SDK开发,调试,真机,模拟器打包注意_第12张图片
image.png

7.脚本导出 framwork 创建一个Aggregare
必需得先点击targets


iOS SDK开发,调试,真机,模拟器打包注意_第13张图片
image.png

iOS SDK开发,调试,真机,模拟器打包注意_第14张图片
image.png

iOS SDK开发,调试,真机,模拟器打包注意_第15张图片
image.png
iOS SDK开发,调试,真机,模拟器打包注意_第16张图片
image.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"

#结束

iOS SDK开发,调试,真机,模拟器打包注意_第17张图片
image.png

8.选择 MySDK command + B 编译,导出framwork


iOS SDK开发,调试,真机,模拟器打包注意_第18张图片
image.png

会报错的,因为有两个路径不对 不存在


iOS SDK开发,调试,真机,模拟器打包注意_第19张图片
image.png

这是因为在添加 脚本代码的时候 没有如图存在的两个路径


iOS SDK开发,调试,真机,模拟器打包注意_第20张图片
image.png

所以需要添加几个文件夹,(名字一段要和脚本代码里面的对应好)


iOS SDK开发,调试,真机,模拟器打包注意_第21张图片
image.png

重新 command + B 编译:(编译一定要选对)


iOS SDK开发,调试,真机,模拟器打包注意_第22张图片
image.png

成功之后 会自动弹出


iOS SDK开发,调试,真机,模拟器打包注意_第23张图片
image.png
注意:此处为什么是 分为不同版本:
# 增加这个Target,并使用脚本编译,主要是为了制作支持模拟器的framework, 该Target编译生成的是生产版本,编译输出的framework保存在
# 工程文档所在目录的Products子目录中,输出包括两个,一个是支持模拟器的版本,另一个是用于上传到App Store的版本,之所以要单独制作一
# 个用于上传App Store的版本,是因为支持模拟器的版本包括x86_64及i386框架,上传App Store时不被苹果允许

至此 简易的SDK 是做成功了

二,如何使用SDK

1.创建一个demo,

iOS SDK开发,调试,真机,模拟器打包注意_第24张图片
image.png

2.将之前 打包出来的 framework 拖到项目中:(我用模拟器)
iOS SDK开发,调试,真机,模拟器打包注意_第25张图片
image.png

3.导入SDK 头文件 在ViewController中添加SDK中的YjcView
iOS SDK开发,调试,真机,模拟器打包注意_第26张图片
image.png

4.最终展示


iOS SDK开发,调试,真机,模拟器打包注意_第27张图片
image.png

3.调试

我如果想更换颜色,是不是还得 改变颜色 然后再打包 拖入?(tei麻烦了)

1.将之前的framework 删掉


iOS SDK开发,调试,真机,模拟器打包注意_第28张图片
image.png
iOS SDK开发,调试,真机,模拟器打包注意_第29张图片
image.png
iOS SDK开发,调试,真机,模拟器打包注意_第30张图片
image.png

2.我将颜色 直接改为 黄色 (先不要急着运行,先clear 一遍),结果颜色 还是没变


iOS SDK开发,调试,真机,模拟器打包注意_第31张图片
image.png

(尴尬的一匹~)

iOS SDK开发,调试,真机,模拟器打包注意_第32张图片
image.png

这里是没有静态库的 所以!

iOS SDK开发,调试,真机,模拟器打包注意_第33张图片
image.png
iOS SDK开发,调试,真机,模拟器打包注意_第34张图片
image.png

OK


iOS SDK开发,调试,真机,模拟器打包注意_第35张图片
image.png

至此 调试就OK了

但是: 上架的时候,肯定要的是framework ,所以需要删除 如图以下的project,我点击右键 delete 然后 Move to trash 导致SDK 中 project给没了!!!没了!!没了!
一身冷汗~ 注意了 我是这样做的,remove reference 删除引用 而不是放到废纸篓........

iOS SDK开发,调试,真机,模拟器打包注意_第36张图片
image.png

iOS SDK开发,调试,真机,模拟器打包注意_第37张图片
image.png

4,打包上架App

记得SDK 需要切换到


iOS SDK开发,调试,真机,模拟器打包注意_第38张图片
image.png

你可能感兴趣的:(iOS SDK开发,调试,真机,模拟器打包注意)