浅谈iOS SDK开发流程 [复制链接]

2020-7-30 17:37
封刀恻隐 阅读:122 评论:0 赞:0
Tag:  

前言

因为近期的业务需求,可能要进行SDK的开发,于是又温习了一下流程。看了网络上的技术文档着实不少,但是感觉大多数都是相互借鉴,要么不够具体,要么贴图已经加载不出来了[捂脸].jpg。于是乎,在下亲自将整个流程走了一遍,顺便记录下来供朋友们参考。
由于.a与.framework大同小异,本文采用更加普遍的framework进行试验。

1.新建库

图片描述

2.配置信息

2.1架构配置

图片描述

2.2编译配置

是否只编译当前设备支持的指令集,设置为No。

图片描述

2.3最低版本

设置SDK支持的最低版本。

图片描述

3.代码部分

在这里可以设置需要暴露的头文件。

图片描述

在入口文件中配置需要暴露的头文件。

图片描述

为了让SDK同时支持真机and模拟器,需要将两个库进行合并。在如下处配置脚本。

图片描述

if [ "${ACTION}" = "build" ]
then
INSTALL_DIR="${SRCROOT}/${CONFIGURATION}-Products/${PROJECT_NAME}.framework"

DEVICE_DIR="${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework"

SIMULATOR_DIR="${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework"

if [ ! -d "${DEVICE_DIR}" ] || [ ! -d "${SIMULATOR_DIR}" ]
then
exit 0
fi

if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
 
lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

open "${SRCROOT}/${CONFIGURATION}-Products"

fi

之后分别用真机模拟器编译即可。

4.添加资源文件

如果SDK中用到了资源文件,可以添加bundle。但是需要分开提供,否则打包会报错。

让我们试一下,首先创建一个bundle,引入一张图片。
图片描述

修改bundle的配置。

图片描述

图片描述

图片描述

这里设置为NO,否则@3x格式会变成tiff。

图片描述

配置完成,编译!生成!

接下来试一下,在SDK中添加如下方法:

图片描述

新建一个项目引入新生成的framework、bundle。

图片描述

展示一下。

图片描述

效果:

图片描述

哦了~!

5.检查指令集架构

生成SDK之后,可以通过如下命令进行查看所支持的架构。

lipo -info SDK_Path/TestSDK.framework/TestSDK
架构处理器设备
arm64e真机64位iPhone XS(XR、XS Max)及之后产品
arm64真机64位iPhone X,iPhone 8(Plus),iPhone 7(Plus),iPhone 6(Plus),iPhone 6s(Plus), iPhone 5s, iPad Air(2), Retina iPad Mini(2,3)
armv7s真机32位iPhone5,iPhone5C,iPad4
armv7真机32位iPhone4,iPhone4S,iPad,iPad2,iPad3(The New iPad),iPad mini,iPod Touch 3G,iPod Touch4
x86_64模拟器64位--
i386模拟器32位--

6.注意事项

1.同一个编译环境下(debug or release)需要分别用模拟器、真机编译,才会在根目录下生成同时支持真机、模拟器的SDK。

2.需要根据业务需求制定适合自己的SDK。毕竟支持的越多,体积也就越大了。

3.想让SDK同时支持release、debug环境的真机、模拟器,还需要自己手动合并。(伪代码,路径自己换一下哟~~~)

lipo -create releaseSDK_Path debugSDK_Path -output commonSDK_Path

4.SDK中用到了图片素材需要把bundle文件单独提供,因为合并到SDK中打包会报错。


我来说两句
您需要登录后才可以评论 登录 | 立即注册
facelist
所有评论(0)
作者的其他最新博客
    关闭

    每日头条

    通过邮件订阅最新 Code4App 信息
    上一条 /4 下一条

    广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )