例如,我们使用AdColony视频广告平台。我将pod 'AdColony'
放入Podfile
并运行pod install
后,我的Pods
目录中有一个AdColony
文件夹(并且Xcode项目配置为能够使用它。)
现在,该文件夹包含两个项目:AdColony.framework
iOS框架和README.md文件。究竟你需要什么,对吧?然而,当潜水深一点时,事情会变得神秘。
AdColony Cocoapods page与Podspec有link。在其中,我们有以下条目:
"source": {
"git": "https://github.com/AdColony/AdColony-iOS-SDK-3.git",
"tag": "v3.2.1"
}
如果你去github项目和标签,你会发现它有pod的内容,但它还有其他东西:SampleApps
文件夹,CHANGELOG.md
文件和W-9 PDF。这些都不会出现在Pods目录中。
如果您不仅从项目中删除了pod,而是从计算机的缓存中删除了pod,并运行pod install --verbose
,您将在控制台中看到git命令。它看起来像这样:
/usr/bin/git clone https://github.com/AdColony/AdColony-iOS-SDK-3.git
/var/folders/jp/lm8trz8d7nl1pf4_mh690dvr0000gn/T/d20180112-57517-1j1p7dc
--template= --single-branch --depth 1 --branch v3.2.1
自己运行该命令(减去目标路径的随机字符串)会生成一个文件夹,其中包含您在github页面上看到的所有内容--- SampleApps
文件夹等。
在此克隆过程与将AdColony
文件夹放入项目的Pods
目录之间的某处,cocoapods删除了不必要的文件。
这是什么时候发生的?
cocoapods如何知道要删除哪些文件以及要保留哪些文件?
这可由开发人员控制吗?如果是这样,怎么样?
是否有任何记录?
答案 0 :(得分:0)
它在Cocoapods的引擎盖后面做到了。它的作用是从你的框架中获取podspec - podspec将定义必要的文件minus
SampleApp。
尝试转到podspec并查找public_header
,frameworks
或source_file
(如果git包含任何来源)。
我建议您在本地工作区创建一个示例窗格,然后使用它:)