美文网首页iOS (oc)
iOS SDK开发,调试,真机,模拟器打包注意

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

作者: 择一城终老_蜗牛 | 来源:发表于2019-08-01 18:06 被阅读0次

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

剑来镇压图

剑来

一、创建一个workspace + SDK project

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


WeChat748916a50cd2b4ebe253dcd2f1ba6176.png

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

image.png

3,创建project 选择 Cocoa Touch FranmeWork


image.png
image.png

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

image.png
SDK创建OK
image.png
4,SDK 添加代码 我这里添加一个View
image.png

5.修改一些配置

  • 设置Build Setting参数将Build Active Architecture only设置为NO
image.png
  • Mach-o type 修改为Static Librayr


    image.png
  • 设置Headers,将要公开的头文件拖到Public下,要隐藏的放到Private或Project下,隐藏的头文件不能被引用

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

image.png

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


image.png

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


image.png
image.png
image.png 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"

#结束

image.png

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


image.png

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


image.png

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


image.png

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


image.png

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


image.png

成功之后 会自动弹出


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

至此 简易的SDK 是做成功了

二,如何使用SDK

1.创建一个demo,

image.png
2.将之前 打包出来的 framework 拖到项目中:(我用模拟器)
image.png
3.导入SDK 头文件 在ViewController中添加SDK中的YjcView
image.png

4.最终展示


image.png

3.调试

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

1.将之前的framework 删掉


image.png image.png image.png

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


image.png

(尴尬的一匹~)

image.png

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

image.png image.png

OK


image.png

至此 调试就OK了

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

image.png
image.png

4,打包上架App

记得SDK 需要切换到


image.png

相关文章

网友评论

    本文标题:iOS SDK开发,调试,真机,模拟器打包注意

    本文链接:https://www.haomeiwen.com/subject/bfihrctx.html