iOS开发之应用间账号共享与SDK封装

一、功能总述

在博客开始的第一部分,我们先来看一下我们最终要实现的效果。下图中所表述的就是我们今天博客中要做的事情,下方的应用alt=" iOS开发之应用间账号共享与SDK封装">

本部分算是本篇博客的一个综述吧,从下方截图中,我们能清楚的看到上述的两个应用程序中都植入了我们接下来要封装的SDK.LoginSDK.framework就是我们封装的登录静态库,其中提供了用户所调用的API。

 iOS开发之应用间账号共享与SDK封装

下方这个截图中的内容就是用户所调用LoginSDK的API。因为我们做的只是一个演示,所以下方的API接口比较简单,如果你要和现实应用中真正的需求和业务逻辑整合到一块,那么封装一个登录用的SDK是非常麻烦的。因为我考虑过把我们团队所开发的几个应用中的登录模块封装成SDK,仔细考虑了一下,东西还是蛮多的,扯远了,不过今天这个演示还是可以提供一个大体思路的。

下方API的对象是通过单例来获取的,如果是首次登录的话,就需要调用getLoginViewController这个方法来获取登录页面,并且这个函数需要提供一个块参数,这个块参数用来处理登录成功后的事件。而登录失败等事件就在我们SDK中自行处理了。

checkHaveLogin方法是用来检查是否已经有账号登录过,该方法需要提供两个块,一个是登录成功要执行的块,一个是没有已登录账号时执行的块。当执行该方法时,如果之前有账号登录过的话,就直接进行隐式登录,登录成功后执行loginSuccessBlock。之前如果没有账号在此设备上登录就执行noAccountBlock,来处理首次登录的事件。

 iOS开发之应用间账号共享与SDK封装

该部分先聊这么多,接下来会根据上述的知识点详细的展开。

,

二,LoginSDK的封装

在封装LoginSDK之前呢,SDK的源代码以及所依赖的资源得准备好对吧。下方截图就是我们LoginSDK的源代码,下方绿框中的部分是留给用户使用的API,而黄框中的部分就是我们这个SDK所依赖的资源了,虽然此处只用一个故事板,我们还是有必要将该资源文件打包成束文件提供给用户的。而其他源代码SDK的用户是看不到的。源码准备好,测试完毕后,接下来我们就要进行SDK的封装了。

 iOS开发之应用间账号共享与SDK封装

,

1。创建iOS框架工程

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

 iOS开发之应用间账号共享与SDK封装“> <img src=

,

2。设定兼容版本

创建完工程后,我们要选择“部署目标”,此处我们选择的是8.0。也就是说此处我们封装的SDK所支持的iOS系统版本是iOS8.0 +。

 iOS开发之应用间账号共享与SDK封装

,

3。选择“静态库”

我们创建的框架默认是动态库,所以我们要讲Mach-O类型设置为静态库“静态库”,如下所示。

 iOS开发之应用间账号共享与SDK封装

,

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

配置好上述选项后,接下来我们就需要将我们事先准备好的SDK源代码引入到我们的框架的工程中进行编译了,在编译之前我们要选择SDK用户可以看到的文件。下方截图中就是在构建阶段下的头文件中进行设置的。将用户可以看到的头文件房子公众中,用户看不到的放在项目中。如下所示。

 iOS开发之应用间账号共享与SDK封装

,

5。编译

上述设置和配置完毕后,我们就要对我们的框架工程进行编译了。先选择模拟器进行编译,然后选择真机进行编译。编译完后,在产品下会生成相应的框架,然后通过在Finder中显示进行查看即可。查看时,如果想看“模拟器”和“真机”的框架的话,在显示在Finder中后,需要前往上层文件夹查看。具体如下所示。

iOS开发之应用间账号共享与SDK封装