是否有可能排除Cocoapods的依赖?

时间:2016-11-17 15:47:42

标签: ios firebase cocoapods firebase-cloud-messaging google-toolbox-for-mac

Firebase / Messaging依赖于:

Using Firebase
Using FirebaseAnalytics
Using FirebaseCore
Using FirebaseInstanceID
Using FirebaseMessaging
Using GoogleInterchangeUtilities
Using GoogleSymbolUtilities
Using GoogleToolboxForMac

我想知道是否可以排除GoogleToolboxForMac?问题是我有一个静态库已经使用GoogleToolboxForMac没有cocoapods。

所以只想知道是否可能?

3 个答案:

答案 0 :(得分:8)

排除依赖关系的更好解决方案是在原始版本的顶部使用本地pod规范文件。

pod 'Firebase/Messaging', :podspec => 'FirebaseMessaging.podspec.json'

::例如用法:: 1)访问> https://cocoapods.org/pods/FirebaseMessaging

2)点击'参见Podspec' (您将被重定向到github上的现有规范)

3)点击' Raw'下载此文件。然后是“将文件另存为”。

4)将此文件放在与xcode项目的podfile相同的目录中

5)编辑此文件并删除您不感兴趣的依赖项。

6)多数民众赞成。执行pod安装或pod更新与您更相关,并且不再安装依赖项。

需要注意的是:如果将来更新FirebaseMessaging pod,您必须自己保持本地pod文件同步。

答案 1 :(得分:3)

Pod的依赖关系在其podspec文件中定义。

理论上:您可以分析/克隆pod的repo,编辑podspec以删除依赖项,并添加新的git repo / fork作为Podfile中的源代码。然而,之后您必须编辑pods项目目标的搜索路径,以便它可以找到它需要构建的库,并且您已经删除了。期待更多问题,因为库位于您的主项目中,而pods项目是独立的。我理所当然地说,我不会为你的情况推荐这个。更新的开销也更多。

此外,据我所知,Firebase / Messaging repo不公开(不确定),这将使这个选项变得不可能。

答案 2 :(得分:2)

假设您的GoogleToolboxForMac版本是最新的,足以满足Firebase / Messaging的要求,您可以执行以下操作:

  • 找到每个构建方案的xcconfig文件: find。 | grep xcconfig
  • 编辑它们并删除以下三个字符串:
  • “$ PODS_CONFIGURATION_BUILD_DIR / GoogleToolboxForMac”
  • -iquote“$ PODS_CONFIGURATION_BUILD_DIR / GoogleToolboxForMac / GoogleToolboxForMac.framework / Headers”
  • -framework“GoogleToolboxForMac”

每当 pod更新

时,您可能需要重做

然而,正如@Valentin所说,不建议这样做。从现有的静态库中删除GoogleToolboxForMac构建可能会更好,并依赖于Cocoapod来满足所有GoogleToolboxForMac依赖项。