美文网首页
iOS 简单封装功能性SDK

iOS 简单封装功能性SDK

作者: 宋进锋 | 来源:发表于2016-08-12 01:30 被阅读103次

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

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


    下面我们开始操作:

    创建一个静态库工程

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

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

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

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

    创建一个PopMoneyView控件

    其实当前的工程就已经可以用了了,是时候为你的库添加一些功能了。由于本篇教程的关键在于教你怎么样创建一个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 就哪里都可以用了!有不对的地方还望各位多多指正,大家相互沟通交流。

    相关文章

      网友评论

          本文标题:iOS 简单封装功能性SDK

          本文链接:https://www.haomeiwen.com/subject/gpbssttx.html