iOS工程中创建并使用一个SDK,俗称.a文件


创建一个静态库工程

 

ios下的sdk开发 ios sdk开发教程_.a

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


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


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

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



自定义一个控件LCSCustomEnvironmentView

 

其实当前的工程就已经可以用了,是时候为你的库添加一些功能了。例如添加了一个自定义的view这样用户可以直接用这个自定义的view,而不能知道里边具体怎么实现的。


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


ios下的sdk开发 ios sdk开发教程_iOS_02


接下来就生成静态库

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

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


ios下的sdk开发 ios sdk开发教程_ios下的sdk开发_03



选中模拟器,然后command+B,然后点击show in Finder

ios下的sdk开发 ios sdk开发教程_ios下的sdk开发_04


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


现在呢,将这个文件拖到你要应用了工程中,引入头文件发现我没用.m文件依然可以使用这个自定义的控件LCSCustomEnvironmentView

ios下的sdk开发 ios sdk开发教程_.a_05


但是,这样只能给模拟器使用。如果我们使用真机,立马会报错,当然是库不支持真机了。然后选中真机command+ B再来一次


ios下的sdk开发 ios sdk开发教程_ios下的sdk开发_06


你就会发现 LCSConnectLib.a 变黑了。

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

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

终端操作:


首先,打开终端,看一下各个版本信息

ios下的sdk开发 ios sdk开发教程_sdk_07


果然只是支持x86_64的,然后看看生成的手机版本的信息


ios下的sdk开发 ios sdk开发教程_ios下的sdk开发_08


果然手机版本的支持arm7 arm64的,如果我想手机模拟器和手机同时支持呢?肯定要合并这两个包


ios下的sdk开发 ios sdk开发教程_.a_09


合并完成后命名为NewLCSLib,然后查看下这个包的属性


ios下的sdk开发 ios sdk开发教程_iOS_10

果然现在既支持arm7 arm64又支持x86_64了。然后手机模拟器切换测试发现不报错了。搞定。。。