cocopods的坑

Cocopods Collect

Posted by Tony Chan on 2017-02-21

使用CocoaPods也有很长一段时间了,最近几个月的时间里也主导了公司私有Pods的创建和使用。在此期间踩过了不少坑,在踩坑的过程中也收获了不少经验,更加熟练地掌握了CocoaPods的一些指令的使用。本篇作为这段时间收获的备忘。

多target时Podfile该如何写


我的建议是使用Ruby语法,定义不同的分组,然后不同的target可以自由选择依赖哪些分组,这种方式看起来更简洁,对于多target的项目来说也更友好:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
platform :ios, '8.0'

def commonPods #通用pods集
pod 'AFNetworking', '~> 2.0'
pod 'Masonry'
end

def appOnlyPods #app专用pods集
pod 'MBProgressHUD'
end

def extensionPods #扩展专用pods集
pod 'GTSDKExtension'
end

target :TestCocoaPods do
commonPods
appOnlyPods

target :TestCocoaPodsTests do
inherit! :search_paths
# Pods for testing
end

target :TestCocoaPodsUITests do
inherit! :search_paths
# Pods for testing
end
end

target :SecondTarget do
commonPods
end

如何忽略Pods警告?


有些第三方Pod集成进来会有一大堆警告信息,如果你看着比较难受想把它忽略的话,在Podfile中对应的target或分组下加上关键字inhibit_all_warnings即可。

如何直接引用第三方库中的头文件?


在用CocoaPods集成第三方库之后,默认情况下,我们需要使用类似#import <XXX/YYY.h>的方式引入第三方库的头文件。我们可以在Build Settings -> User Header Search Paths中添加${SRCROOT}并设置成recursive,这样我们就可以直接使用#impot "YYY.h"这种方式了。

修改pods中的源码,为什么不生效?


每次编译编译器默认是不会再次编译pods中的代码, 修改后可以clean一下,然后再试


Reference:

GitHub Repo:Tony Studio

Follow: CoderTonyCHan · GitHub