tacos_tacos_tacos
tacos_tacos_tacos

Reputation: 10585

Determine which CocoaPod(s) need a specific dependency

Motivation: I am using XCode 7.1 Beta and some CocoaPods that are dependencies of other CocoaPods are not compatible with the beta for one reason or another. So I know which Pods are "bad" but not which Pods are using those Pods.

Is there a pod command or other method to input a pod name and output all of its dependents that are included in your project aside from trial and error?

Upvotes: 3

Views: 793

Answers (1)

Raptor
Raptor

Reputation: 54260

There is a command to list the dependencies of the library (Take FBSDKCoreKit as example).

pod spec cat FBSDKCoreKit

which the output is the contents of its Podspec, which contains the dependencies information:

{
  "name": "FBSDKCoreKit",
  "version": "4.5.1",
  "summary": "Official Facebook SDK for iOS to access Facebook Platform's core features",
  "description": "The Facebook SDK for iOS CoreKit framework provides:\n* App Events (for App Analytics)\n* Graph API Access and Error Recovery\n* Working with Access Tokens and User Profiles",
  "homepage": "https://developers.facebook.com/docs/ios/",
  "license": {
    "type": "Facebook Platform License",
    "file": "LICENSE"
  },
  "authors": "Facebook",
  "platforms": {
    "ios": "7.0"
  },
  "source": {
    "git": "https://github.com/facebook/facebook-ios-sdk.git",
    "tag": "sdk-version-4.5.1"
  },
  "weak_frameworks": [
    "Accounts",
    "CoreLocation",
    "Social",
    "Security",
    "QuartzCore",
    "CoreGraphics",
    "UIKit",
    "Foundation",
    "AudioToolbox"
  ],
  "dependencies": {
    "Bolts": [
      "~> 1.1"
    ]
  },
  "header_dir": "FBSDKCoreKit",
  "header_mappings_dir": "FBSDKCoreKit/FBSDKCoreKit/Internal",
  "subspecs": [
    {
      "name": "arc",
      "public_header_files": "FBSDKCoreKit/FBSDKCoreKit/*.h",
      "source_files": "FBSDKCoreKit/FBSDKCoreKit/**/*.{h,m}",
      "exclude_files": "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDynamicFrameworkLoader.m",
      "requires_arc": true
    },
    {
      "name": "no-arc",
      "source_files": "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDynamicFrameworkLoader.m",
      "requires_arc": false,
      "dependencies": {
        "FBSDKCoreKit/arc": [

        ]
      }
    }
  ]
}

Other command flags can be found here.

Upvotes: 4

Related Questions