iOS SDK的封装以及调用

1.创建iOS Framework工程

首先我们需要创建一个iOS的CocoaTouch工程,点击Next,输入我们Framework的名字即可。下方我们暂且将该Framework的名字命名为LDFramework。如下所示:

2.设定兼容版本

创建完工程后,我们要选择Deployment Target, 此处我们选择的是9.0。也就是说此处我们封装的SDK所支持的iOS系统版本是iOS9.0+。


3.选择“静态库”

我们创建的framework默认是动态库,所以我们要讲Mach-O Type设置为静态库“Static Library”,如下所示。


4.引入源代码并进行编译

①这里我创建的是SayHello类。

.h文件中


.m文件中


下方截图中是在Build Phases下的Headers中进行设置的。将用户可以看到的头文件房子Public中,用户看不到的放在Project中。如下所示。

5.编译

准备进行编译 分别在模拟器和真机的环境下进行编译,模拟器不用介绍了,真机的环境选择如图所示,使用真机编译也可以:


编译完后,在Products下会生成相应的Framework, 然后通过Show in Finder进行查看即可。


我们会看到两个LDFramework文件,一个是真机生成的LDFramework,一个是模拟器生成的LDFramework

我们使用"lipo -create模拟器framework路径 真机framework路径-output新的文件"命令将上述1、2两个文件进行合并。下方3就是合并上述两个文件的执行命令, 执行完下方命令后会生成合并后的文件,将上述文件进行替换即可。经过上述步骤,我们的Framework至此就封装完毕了。


经过上面的步骤,可以在计算机的根目录下找到LDFramework文件,将其替换项目中的两个同名的LDFramework文件,就此我们的SDK就已经制作完成了。

SDK的使用

SDK已经依赖的资源文件封装完毕后,接下来就是在其他App中使用了。引入SDK步骤也是比较简单的,这和引入友盟,个推,微信支付,支付宝等等SDK的步骤差不多。下方就是我们引入SDK的步骤。

我新建了一个test工程

1.导入SDK并进行相关配置


2.配置完路径后,接下来我们要在Other Linker Flags添加上-Objc和-all_load选项。-Objc这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。而-all_load会强制链接器把目标文件都加载进来,即使没有objc代码。根据上面介绍的,下方即使不添加-Objc这个选项,下方的工程也是可以正常运行的。


3.SDK的使用

配置完毕后,接下来就是在我们App中使用该SDK了。下方代码就是我们上述LDFramework的使用方式


2.配置完路径后,接下来我们要在Other Linker Flags添加上-Objc和-all_load选项。-Objc这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。而-all_load会强制链接器把目标文件都加载进来,即使没有objc代码。根据上面介绍的,下方即使不添加-Objc这个选项,下方的工程也是可以正常运行的。

参考文章:https://www.jianshu.com/p/436145582ddf

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:iOS中SDK的简单封装与使用 - CSDN博客 一、功能总述 我们先来看一下我们最终要实现的效果。下图...
    小龙88阅读 17,440评论 1 10
  • 前言 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所...
    和珏猫阅读 48,953评论 53 145
  • 前言 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实...
    球哥阅读 2,839评论 0 2
  • 前言 如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件。然而,这种方法并不是很优雅。它会暴露所有的实...
    大冲哥阅读 5,185评论 0 4
  • 前言: 因为现在设计模式在网络上已经泛滥,但是还是有好多程序员不能够灵活的运用设计模式,这个是对设计模式简单的介绍...
    蜗牛ICU阅读 1,209评论 0 0