cocoapods依赖项的Git哈希

cocoapods依赖项的Git哈希,git,cocoapods,Git,Cocoapods,我试图通过编程方式找出标记/branch/commit的git散列或任何用于项目依赖性的内容,以便为调试提供更多信息,前提是依赖性存储在git repo中。有什么想法吗?我不希望再次克隆依赖项。这将取决于Pod的安装方式。如果您从外部源安装了Pod,例如,如果您在Pod文件中使用以下内容: pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git' 您可以在中找到使用的签出选项,这是一个机器

我试图通过编程方式找出标记/branch/commit的git散列或任何用于项目依赖性的内容,以便为调试提供更多信息,前提是依赖性存储在git repo中。有什么想法吗?我不希望再次克隆依赖项。

这将取决于Pod的安装方式。如果您从外部源安装了Pod,例如,如果您在Pod文件中使用以下内容:

pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git'
您可以在中找到使用的签出选项,这是一个机器可读的YAML文件:

CHECKOUT OPTIONS:
  AFNetworking:
    :commit: ba7b6e541fd18bdf48da6d4845670e3e6b990637
    :git: https://github.com/AFNetworking/AFNetworking.git
相反,如果您使用的是规范存储库,则需要查阅用于Pod的podspec,该文件将在所用Pod规范存储库的本地签出中找到(如果这是主规范存储库,请访问
~/.cocoapods/repos/master/
)。pod规范将包含所需的检查信息。例如,如果您使用的是master spec存储库中的AFNetworking 2.5.2,您可以在必要的podspec中找到签出信息:

$ grep -A 3 '"source"' ~/.cocoapods/repos/master/Specs/AFNetworking/2.5.2/AFNetworking.podspec.json
  "source": {
    "git": "https://github.com/AFNetworking/AFNetworking.git",
    "tag": "2.5.2",
    "submodules": true

非常感谢您的快速回复!我使用的是规范存储库,因此无法获取:commit:条目,规范中的源信息通常不包含git哈希。您知道cocoapods是否对其依赖项进行git克隆(如果它们是基于git的)?或者它是否以不同的方式检查来源。我试着让自己看起来很像,但我对ruby还很陌生,在源代码中迷失了方向。CocoaPods会根据规范中的信息进行git克隆,通常这是一个git标记,所以它会对该标记进行克隆。您可以在以下位置找到确定git参数的代码: