与cocoapods ios合作

pre*_*tam 6 ios cocoapods

我知道cocoapod正在简化手动添加库的工作,或让开发人员专注于他的实际源代码.

但我的问题是,如果我只需要某些项目中的某些源文件,那么通过安装相同的cocoapod可以添加整个库吗?就像我只需要Reachability类文件那样,为什么我要整体AFNetworking

是不是会造成代码冗余或增加我的iPA大小或其他性能问题?

小智 10

通常,在Objective-C中向项目添加静态库会将所有OBJECT FILES拉入生成的二进制文件,因为可可pod安装会将-ObjC标志添加到链接器设置中,并且如链接器手册中所述:

-ObjC        Loads all members of static archive libraries that implement
             an Objective-C class or category.
Run Code Online (Sandbox Code Playgroud)

此标志包含用于解决链接类别的问题,因为默认情况下链接器不会包含仅包含结果二进制类别的对象文件.

因此,一般情况下,在通过CocoaPods向项目添加大型库时要小心.


wat*_*n12 7

AFNetworking分为子规格,因此您应该只能通过以下方式获得可达性部分:

pod 'AFNetworking/Reachability'
Run Code Online (Sandbox Code Playgroud)

或者你可以得到一个不同的更集中的pod,在cocoapods.org上搜索可达性

一般代码浪费:对于像AFNetworking这样的相对较小的库(源代码为270K),我不会太担心IPA的大小.在包含您不使用的代码方面,我猜您应该尝试找到最符合您需求的库.如果您可以选择准确编写所需的网络代码,或者使用经过验证的框架,即使您不使用它,我也会采用框架