Class: Xcodeproj::Project::Object::PBXTargetDependency

Inherits:
AbstractObject
  • Object
show all
Defined in:
lib/xcodeproj/project/object/target_dependency.rb

Overview

Represents a dependency of a target on another one.

Attributes collapse

Attributes inherited from AbstractObject

#isa, #project, #uuid

AbstractObject Hooks collapse

Methods inherited from AbstractObject

#<=>, #==, #inspect, isa, #pretty_print, #remove_from_project, #sort, #to_hash

Instance Attribute Details

#nameString

Note:

This seems only to be used when the target dependency is a target from a nested Xcode project.

Returns the name of the target.

Returns:

  • (String)

    the name of the target.



27
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 27

attribute :name, String

#targetPBXNativeTarget

Returns the target that needs to be built to satisfy the dependency.

Returns:

  • (PBXNativeTarget)

    the target that needs to be built to satisfy the dependency.



12
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 12

has_one :target, AbstractTarget

#target_proxyPBXContainerItemProxy

Note:

Apparently to support targets in other projects of the same workspace.

Returns a proxy for the target that needs to be built.

Returns:



20
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 20

has_one :target_proxy, PBXContainerItemProxy

Instance Method Details

#display_nameString

Returns The name of the dependency.

Returns:

  • (String)

    The name of the dependency.



36
37
38
39
40
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 36

def display_name
  return name if name
  return target.name if target
  return target_proxy.remote_info if target_proxy
end

#sort_recursively(_options = nil) ⇒ Object

Note:

This is a no-op, because the targets could theoretically depend on each other, leading to a stack level too deep error.



60
61
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 60

def sort_recursively(_options = nil)
end

#to_tree_hashHash<String => String>

Note:

This override is necessary because Xcode allows for circular target dependencies.

Returns a cascade representation of the object without UUIDs.

Returns:

  • (Hash<String => String>)

    Returns a cascade representation of the object without UUIDs.



48
49
50
51
52
53
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 48

def to_tree_hash
  hash = {}
  hash['displayName'] = display_name
  hash['isa'] = isa
  hash
end