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

原文地址:https://www.cnblogs.com/striveLD/p/12843551.html