cocoapods如何确定源中的哪些文件保持安装?

时间:2018-01-12 22:41:38

标签: git frameworks cocoapods dependency-management

例如,我们使用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如何知道要删除哪些文件以及要保留哪些文件?

这可由开发人员控制吗?如果是这样,怎么样?

是否有任何记录?

1 个答案:

答案 0 :(得分:0)

它在Cocoapods的引擎盖后面做到了。它的作用是从你的框架中获取podspec - podspec将定义必要的文件minus SampleApp。

尝试转到podspec并查找public_headerframeworkssource_file(如果git包含任何来源)。

我建议您在本地工作区创建一个示例窗格,然后使用它:)