Module: Xcode::TargetDependency

Defined in:
lib/xcode/target_dependency.rb

Overview

Targets, usually Aggregate targets, have dependencies on other targets. This object manages that relationship. While the class-level default properties method will return the properties necessary for a target it does not configure it correctly until the method #create_dependency_on is called with the particular target.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.defaultHash

Generate default properties for a Target Dependency

/* Begin PBXTargetDependency section */
    98A30E0414CDF2D800DF81EF /* PBXTargetDependency */ = {
      isa = PBXTargetDependency;
      target = 98A1E39414CDED2C00D4AB9D /* Facebook */;
      targetProxy = 98A30E0314CDF2D800DF81EF /* PBXContainerItemProxy */;
    };
/* End PBXTargetDependency section */

Returns:

  • (Hash)

    the properties default to a target dependency; however they are all nil and this properties list is incomplete until the property values are setup through #create_dependency_on



31
32
33
34
35
# File 'lib/xcode/target_dependency.rb', line 31

def self.default
  { 'isa' => 'PBXTargetDependency',
    'target' => nil,
    'targetProxy' => nil }
end

Instance Method Details

#create_dependency_on(target) ⇒ Object

Establish the Target that this Target Dependency is dependent.

Parameters:

  • target (Target)

    the target this dependency is based on



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/xcode/target_dependency.rb', line 43

def create_dependency_on(target)
  
  @properties['target'] = target.identifier
  
  container_item_proxy = ContainerItemProxy.default target.project.project.identifier, target.identifier, target.name
  container_item_proxy = @registry.add_object(container_item_proxy)
  
  @properties['targetProxy'] = container_item_proxy.identifier
  
  save!
end