iOS SDK 封装和开发实战iOS SDK 开发SDK开发

iOS SDK 开发 -- 入微一星

2016-09-16  本文已影响959人  YxxxHao

前言

在SDK的水里面折腾一段时间,写下这系列文章,权当记录下自己的学习过程,这个系列打算分三个专题:入微、登堂和大成,内容不定期更新。

最简单的 Demo

先上图,一共创建三个工程:Lib 工程(sdkSample-lib)、Framework 工程(sdkSample-framework)和 SDK 的 Deme工程(sdkSampleDemo),如下图所示:

B6578558-CE3A-4C10-A73E-EE4843A5D117.png
首先创建 Lib 工程, File -> New -> Project -> Static Libranry:
4B1439C1-72DC-4354-87AA-8A3242D81B24.png

如上图,所以内容都写在 Lib 目录下,Public 放对外API的头文件,其它的文件可以根据实际做调整。

创建 Framework 工程,File -> New -> Project -> Framework:
635AB02F-C355-46DC-87A9-65421146551F.png

API目录下的头文件的文件名和 Lib 工程下面的Public保持一致,为什么要保持一致,下面将会详细讲解。

创建 SDK Demo

创建一个Single View Application, 然后将 Lib 和 Framework 工程都拖进该工程中:

8D615234-4C4C-4ED2-B9AD-87060630FE2B.png

大功告成,把基础的架构搭起来了,下面开发我们 SDK 的开发。

首先在 Lib 工程里面实现几个方法,并提供接口:

872C806C-E929-4710-B809-D9307F8AB09D.png

上图中在 Framework 的 API 里面提供的sdkSample接口名要和 Lib 中的保持一致,sdkSample的实现文件的内容在这就不详细写,根据实际需要提供接口和实现就可以了。

关联 Lib 和 Framework

目前,Lib 和 Framework 都是相互没有关系的,为能让 Framework 访问 Lib 的内容,需要在 Framework 工程中导入 Lib 的包:

1CE500F2-5A79-4A33-97B1-AFDBD634B4A1.png

然后再在 SDK Demo 中导入 该 framework(sdkSample.framework),然后在 dmeo 里面调用 Framework 的方法:

2CAFE820-AB08-4472-A78E-E07A14CA2406.png

我们愉快的 command + r, 结果 |_|

7AA26CE3-F724-4A7B-9F76-FBDC8C1E2329.png

我靠,这是什么梗,然后各种 baidu 和 google (ps:现在已经很厌恶 baidu 了,各种广告和重复,很无耻地说,当初还在狼厂装逼的时候,发现并没几个 RD 用 baidu的~~~),百度出来的东西都基本是重复的,要不就是说文件没有导入,另外一个就是更改 valid architectures,然而并没有什么用,在这里告诉你们,是将 Framework 工程的 Mach-O Type 设为Static Library的就可以了,别问我为什么知道,是(坑)经(多)验(了):

7387547F-92D9-4E57-987C-67E5DC0B9475.png

这次终于能愉快地 common + r 了~~~~

本要打算一口气把 Lib 打包和 Framework 打包写完,看首图,shell 脚本已经饥渴难耐了,但由于要回去煮饭~~~ 没错,就是煮饭,我是一个撸得了代码,入得了厨房的好男(穷)人(逼) @ _ @ 所以这两天内,再把 SDK 打包写完,欢迎关注,后面带你们一起用脚本来装逼。。。

上一篇下一篇

猜你喜欢

热点阅读