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, #nested_object_for_hash, #pretty_print, #remove_from_project, #sort, #to_ascii_plist, #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

#platform_filterString

Returns the platform filter for this target dependency.

Returns:

  • (String)

    the platform filter for this target dependency.


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

attribute :platform_filter, String

#product_refString

Returns the product reference for this target dependency.

Returns:

  • (String)

    the product reference for this target dependency.


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

attribute :product_ref, 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

#ascii_plist_annotationObject


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

def ascii_plist_annotation
  " #{isa} "
end

#display_nameString

Returns The name of the dependency.

Returns:

  • (String)

    The name of the dependency.


44
45
46
47
48
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 44

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

#native_target_uuidString

Returns uuid of the target, if the dependency is a native target, otherwise the uuid of the target in the sub-project if the dependency is a target proxy.

Returns:

  • (String)

    uuid of the target, if the dependency is a native target, otherwise the uuid of the target in the sub-project if the dependency is a target proxy


59
60
61
62
63
64
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 59

def native_target_uuid
  return target.uuid if target
  return target_proxy.remote_global_id_string if target_proxy
  raise "Expected target or target_proxy, from which to fetch a uuid for target '#{display_name}'." \
    "Find and clear the PBXTargetDependency entry with uuid '#{@uuid}' in your .xcodeproj."
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.


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

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.


72
73
74
75
76
77
78
# File 'lib/xcodeproj/project/object/target_dependency.rb', line 72

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