10

Firebase/Messaging 依赖于:

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

我想知道是否可以排除GoogleToolboxForMac?问题是我有一个静态库,它已经在GoogleToolboxForMac没有 cocoapods 的情况下使用。

所以只想知道有没有可能?

4

3 回答 3

19

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

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

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

2) 单击“查看 Podspec”(您将被重定向到 github 上的现有规范)

3) 点击“Raw”,然后点击“Save File As”下载此文件。

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

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

6) 仅此而已。执行与您更相关的 pod install 或 pod update 并且不再安装依赖项。

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

于 2017-08-14T15:54:19.203 回答
3

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

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

每当您更新 pod时,您可能都必须重做

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

于 2016-11-17T21:37:44.427 回答
3

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

理论上:您可以 fork/clone pod 的 repo,编辑 podspec 以删除依赖项并将新的 git repo/fork 添加为 Podfile 中的源。不过,之后您必须编辑 pods 项目目标的搜索路径,以便它可以找到它需要构建的库,并且您已将其删除。预计会出现更多问题,因为该库位于您的主项目中,而 pods 项目是一个单独的项目。我肯定不会为您的情况推荐这个,只是理论上说。更新也有更多开销。

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

于 2016-11-17T17:12:26.763 回答