这篇教程的主要目的是解释怎么样在你的iOS工程中创建并使用一个.a文件。
一.创建一个静态库工程
打开Xcode,点击File\New\Project,选择iOS\Framework and Library\Cocoa Touch Static Library新建一个静态库工程.

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

一个静态库工程由头文件和实现文件组成,这些文件将被编译为库本身。
当创建静态库工程时,Xcode会自动添加SDKLearn.h和SDKLearn.m。你不需要实现文件,因此右键单击SDKLearn.m选择delete,将它删除到废纸篓中。

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

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

然后点击 Finish 进入工程:

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

接下来就生成静态库
1、静态库分为手机和模拟器两种(手机端的只有手机能调用,模拟器的只有模拟器能调用)。
首先,构建模拟器的静态库,如图

然后show in Finder

之后我拿到这个.a文件 还有和他相关的所有.h文件,存放在一个新的文件夹里(SDKLearn)如下

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

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

上文说了这是由于我们生成.a文件的时候,是生成的模拟器版本的,想要在手机上用就要生成手机版本的,那么手机版本的怎生成呢?看图吧。
改成Device 构建构成(command + R)你就会发现 libSDKLearn.a 变黑了。
重复之前的步骤 就可以在手机上运行了(但是,模拟器又不能用了。。。。)
接下来,我们就来生成一个双方都能用的libSDKLearn.a
首先,打开终端,复制以下命令
lipo(空格)-create(空格) 模拟SDK拖进来(空格)真机SDK拖进来(空格)-output (空格)你桌面地址拖进来/libSDKLearn.a

说明:
真机下的 .a:是你手机模式下可用的libSDKLearn.a
模拟器下的.a:是你模拟器下可用的libSDKLearn.a
双方都可用的:是最后生成双方都可用的libGGTestSDK.a --并存在在桌面
最后拿到的libSDKLearn.a 就哪里都可以用了!
网友评论