iOS 封装SDK

这篇教程的主要目的是解释怎么样在你的iOS工程中创建并使用一个SDK,俗称.a文件。所以,不像其他网站上的教程只说一点比较吊的东西(就是我们这些新手看不懂的东西,这篇教程将只使用一小部分Objective-C代码,本文主要讲解从开始到应用的详细步骤。

环境:xcode 7.3(网上的demo大多数都是老版本的,发现很多东西跟现在的不一样)

下面我们开始操作:

 

创建一个静态库工程

 

打开Xcode,点击File\New\Project,选择iOS\Framework and Library\Cocoa Touch Static Library新建一个静态库工程.

\

 

将工程命名为GGTestSDK,然后将工程保存到一个空目录下。

\

一个静态库工程由头文件和实现文件组成,这些文件将被编译为库本身。

当创建静态库工程时,Xcode会自动添加GGTestSDK.h和GGTestSDK.m。你不需要实现文件,因此右键单击GGTestSDK.m选择delete,将它删除到废纸篓中。

\

 

创建一个AlertView控件

 

其实当前的工程就已经可以用了了,是时候为你的库添加一些功能了。由于本篇教程的关键在于教你怎么样创建一个GGTestSDK.a,而不是怎么样构建一个UI控件,这里你可以使用你自己封装好的控件。将你的控件从Finder中拖到Xcode下GGTestSDK目录下。

\

这里有一点要注意了,这里一定要勾选以下三个选项:

\

 

然后点击 Finish 进入工程:

\

对你的控件的头文件需要做的另一件事是将其添加到库的主头文件GGTestSDK.h中。在这个主头文件的帮助下,开发者使用你的库仅仅需要导入一个头文件,如下面的代码一样,而不是自己去选择自己需要的一块导入。

\

 

接下来就生成静态库

1、静态库分为手机和模拟器两种(手机端的只有手机能调用,模拟器的只有模拟器能调用)。

首先,构建模拟器的静态库,如图

\

 

 

然后show in Finder

\

 

之后我拿到这个.a文件 还有和他相关的所有.h文件,存放在一个新的文件夹里(随便起名越吊越好。我的是:mySDK(我还不想辞职))如下

\

 

现在呢,你就可以拿着这个文件夹去挥霍了。将他拖到你要应用了工程中

\

你以为这样就完事了吗。哼哼,我就知道瞒不住你们,上面已经提到了,只能在模拟器上运行,如果我们链接手机:

\

我滴天,这都是什么鬼?可怕的报错信息又来了。其实没什么,对于这些报错信息,不要慌,他都是有关键点的,这个不多说了,有点跑题。上文说了这是由于我们生成.a文件的时候,是生成的模拟器版本的,想要在手机上用就要生成手机版本的,那么手机版本的怎生成呢?(我都不好意思说了)看图吧,别打我就行。

\

改成Device 构建构成(command + B)你就会发现 libGGTestSDK.a 变黑了。

重复之前的步骤 就可以在手机上运行了(但是,模拟器又不能用了。。。。)

接下来,我们就来生成一个双方都能用的libGGTestSDK.a

首先,打开终端,复制以下命令

lipo-create

/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/GGTestSDK-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphoneos/libGGTestSDK.a

 

/Users/ObjectPLA/Library/Developer/Xcode/DerivedData/GGTestSDK-gjmfufrwwxxwbpbigyezzbclphzv/Build/Products/Debug-iphonesimulator/libGGTestSDK.a

-output/Users/ObjectPLA/Desktop/libGGTestSDK.a

说明:

绿色:是你手机模式下可用的libGGTestSDK.a

红色:是你模拟器下可用的libGGTestSDK.a

蓝色:是最后生成双方都可用的libGGTestSDK.a --并存在在桌面

最后拿到的libGGTestSDK.a 就哪里都可以用了!有不对的地方还望各位多多指正,大家相互沟通交流。

posted @ 2016-10-27 12:27  linfenren  阅读(2985)  评论(0编辑  收藏  举报