美文网首页
iOS之SDK-Framework的制作

iOS之SDK-Framework的制作

作者: 中秋梧桐语 | 来源:发表于2020-01-16 17:43 被阅读0次

前言,本人最近接手了一个SDK的维护工作,前两天又接到一个需求,需要新开发个拍照小工具SDK。为了以后开发SDK提供方便,现将制作过程写下来,记于简书。

一、 首先创建Cocoa Touch Framework工程

屏幕快照 2020-01-15 上午11.44.06.png

创建成功后添加自定义的Person类,如下所示。

屏幕快照 2020-01-15 上午11.49.58.png

Person.m文件的实现

- (void)run{
    NSLog(@"---执行了run方法");
}

二、工程配置。

1. 在工程配置界面,配置相应信息。

选择Targets,在build Settings的搜索框中输入 linking。改变如下三处地方的配置。


屏幕快照 2020-01-15 上午11.54.46.png
2. 暴露头文件,直接将想要公开的头文件,从project里面拖拽到public中即可。
屏幕快照 2020-01-15 下午2.30.11.png
3. 如果想要公开的头文件比较多,可以将要公开的头文件导入到主头文件中。
4. 修改scheme的编译运行类型为release,这样编译的framework就是release包。
屏幕快照 2020-01-16 下午5.38.11.png 屏幕快照 2020-01-15 下午2.32.04.png

导入公共头文件中的头必须放在public里,不然在使用Framework的时候,会报文件找不到的错误。


屏幕快照 2020-01-16 下午4.51.06.png

三、创建和Framework关联的测试Demo,联调开发。

1. 在工程中添加一个类型为Single View App的TARGETS,我的命名为TestFrameworkDemo。
屏幕快照 2020-01-15 上午11.59.54.png

其操作步骤是,点击targets中的"+"号按钮,创建选择Single View App类型的工程,跟创建新工程是一样的。

2. 将Framework和联调的Demo关联起来。

切换scheme到Framework,进行编译,然后在Products下的Framework字体变红后,定位到自己的Framework,最后再勾选关联到demo工程。


屏幕快照 2020-01-15 下午2.47.03.png
3. 将Framework的头文件导入到项目中,使用相关功能。
屏幕快照 2020-01-16 下午4.53.58.png

四、创建脚本自动打包工具Aggregate。

打包的方式有很多种,你可以手动编译打包,然后合并各架构包,这里就不做过多赘述。
下面将的是,利用苹果Aggregate工具,创建自动打包工具,其原理也是通过脚本自动编译工程,再合并,其实跟手动做的工作是一样的。

1. 首先添加新的targets,其类型为Aggregate。我这里命名为TestFrameworkAggregate。
屏幕快照 2020-01-16 下午5.02.23.png
  1. 给TestFrameworkAggregate添加脚本。


    屏幕快照 2020-01-16 下午5.24.02.png
    屏幕快照 2020-01-16 下午5.30.38.png

我这里是在网上找的一段自动打包脚本,可将打包文件自动放到工程目录下的Products文件夹中。

if [ "${ACTION}" = "build" ]

then

INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

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

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

if [ -d "${INSTALL_DIR}" ]

then

rm -rf "${INSTALL_DIR}"

fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

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

#open "${DEVICE_DIR}"

open "${SRCROOT}/Products"

fi

运行成功后,会自动弹出文件夹目录。


屏幕快照 2020-01-16 下午5.27.24.png

最后,在运行脚本文件之前,需开发者自动编译Framework,真机和模拟器都编译(build)一下。只要能看到Products文件夹下的框架字体由红变黑就ok了。

相关文章

  • iOS之SDK-Framework的制作

    前言,本人最近接手了一个SDK的维护工作,前两天又接到一个需求,需要新开发个拍照小工具SDK。为了以后开发SDK提...

  • 静态库

    iOS开发之静态库.a的制作教程http://www.cocoachina.com/ios/20150226/11...

  • iOS开发之制作framework

    iOS开发之制作framework 什么是framework Framework是资源的集合,将静态库(iOS8以...

  • iOS-开发自己的framework

    iOS开发之制作framework 什么是framework Framework是资源的集合,将静态库(iOS8以...

  • iOS开发之制作framework

    iOS开发之制作framework 什么是framework Framework是资源的集合,将静态库(iOS8以...

  • iOS 高级篇 - 《SDK-framework篇》

    1、先创建Cocoa Touch Framework工程2、然后cd到工程目录,pod init,pod inst...

  • 打包 iOS 的 IPA 文件

    ios入门示例之打包 iOS 的 IPA 文件本示例将演示如下内容: 添加测试设备 制作一个可以测试 的 ipa ...

  • iOS-简单封装SDK-framework的封装

    最近公司需要,将部分功能封装为SKD供他人使用,琢磨半天终于弄出来了,记录一下 第一步、创建一个TestSDK文件...

  • iOS之制作framework

    Step1:创建工程: Step2:在TARGETS中修改配置 Step3:创建或者导入要存封的文件 示例:在这里...

  • iOS开发WorkSpace多工程联合编译

    参考链接 iOS开发之静态库.a的制作教程(有合并.a文件的方法)一篇较为详细的 ios静态动态库 的使用方法总结...

网友评论

      本文标题:iOS之SDK-Framework的制作

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