如何打包一个依赖AFNetworking的静态framework

最近在接一个SDK开发的需求,计划打包成静态framework,制作静态framewok的博客网上一搜一大堆,但是真正能说清楚如何依赖AFNetworking的却很少,接下来我们就一起来看一下,如何制作一个依赖AFNetworking的静态库。

第一步,我们要创建一个静态库工程:打开Xcode ->File ->New->Project,会弹出图(1) 效果,我们选择Cocoa Touch Framework

图(1)

我们新建工程CLNetStaticFramework,那么问题来了,这个静态库如何依赖AFNetworking呢?

方法一:直接将AFNetworking 的源码导入到 CLNetStaticFramework 工程中,不过需要修改类名,不然,引用 CLNetStaticFramework 的工程中可能会造成类冲突。 这种方法不是很优雅,不推荐。

方法二:使用pod 来依赖AFNetworking,打出来的静态库,在引用的时候,引用静态库的工程也需要用pod 安装AFNetworking。这种方法虽然优雅,但是也有风险,比如说一些特别老的工程可能没有使用pod 来管理三方库,这就略微蛋疼了。But。。试问现在还要多少公司的工程不用pod来管理呢?如果采用 “方法一” 仅仅修改类名一项 也是够蛋疼的,而且库升级的话,也是无法自动支持的。说白了,要想没毛病,直接在系统网络的请求API的基础上去做静态库内部的网络请求接口,应该是最没毛病的。

不过,放着这么好的AFNetworking 不用,岂不是暴殄天物么。所以还是要研究一下,framework如何依赖AFNetworking。 好了废话不说了,接下来我们就开始探讨静态库如何依赖AFNetworking。也就是我们下面的第二步。

第二步:

我们cd 到 CLNetStaticFramework 目录下 vim 一个podfile 输入如图(3) :

图(3)

然后保存退出(esc+shift+: wq)。执行:pod install,关闭掉原来打开的工程,在当前目录下 执行:open . 重新打开工程选择图(4)的workspace


图(4)

然后新建一个引用AFNetworking 的的类 CLNetAPI。写一个测试代码如图(5)所示

图(5)

接下来把CLNetAPI的头文件CLNetAPI.h暴露出来如图(6)

图(6)

把将要暴露的头文件拖动到Public里面,然后把 CLNetAPI.h 引入到CLNetStaticFramwork.h中如图(7)

图(7)

然后我们要把framework工程修改为静态库framework,因为我们创建的工程默认是动态库工程,如图(8),将红框里面的Mach-o Type 修改为Static Library,这个一定要改,不改的话,打出来的framework 在引用的时候会报 image not found 错误。 

图(8)

接下来就可以打包了,我们这里只打包支持真机的framework

图(9)

选中device 执行cmd+b build 一下,这时候你会看到工程中product文件夹里面的CLNetStaticFramework.framework 由此前的红色变成了黑色。此时我们构建的framework 已经ok 了。

第三步,也是比较重要的一步,如何使用刚才打好的framework。

新建一个测试工程ABSDKDemo,该工程同framework工程一样,用pod来管理依赖,在podfile里面添加AFNetworking的依赖。将打包好的framework导入到测试工程中,并在viewcontroller里面引用CLNetAPI.h,配置好以后看起来是这个样子的:

图(10)

此时我们运行工程,并点击屏幕,查看Xcode 控制台打印的日志看是否调用了我们打包再framework里面的网络请求。

图(11)

结果如上图,和我们预期的一样,果然成功的调用了framework里面封进去的网络请求,到这里,如何打包一个依赖AFNetworking的静态framework 已经聊完了。欢迎大家勘误。

本文demo源码请看下一篇:

下一篇,将探讨如何打包一个依赖第三方库(如支付宝framwork)的framework,欢迎大家一起探讨。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,539评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,594评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,871评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,963评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,984评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,763评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,468评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,850评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,002评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,144评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,823评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,483评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,026评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,150评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,415评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,092评论 2 355

推荐阅读更多精彩内容