class Xcodeproj::XCScheme::BuildableReference


typically is synonymous for an Xcode target)
A BuildableReference is a reference to a buildable product (which is
This class wraps the BuildableReference node of a .xcscheme XML file

def buildable_name

Returns:
  • (String) -
def buildable_name
  @xml_element.attributes['BuildableName']
end

def buildable_name=(value)

Parameters:
  • value (String) --
def buildable_name=(value)
  @xml_element.attributes['BuildableName'] = value
end

def construct_buildable_name(build_target)

Returns:
  • (String) - The buildable name of the scheme.

Parameters:
  • target (Xcodeproj::Project::Object::AbstractTarget) --
def construct_buildable_name(build_target)
  case build_target.isa
  when 'PBXNativeTarget'
    File.basename(build_target.product_reference.path)
  when 'PBXAggregateTarget'
    build_target.name
  else
    raise ArgumentError, "Unsupported build target type #{build_target.isa}"
  end
end

def construct_referenced_container_uri(target)

Returns:
  • (String) - A string in the format "container:[path to the project

Parameters:
  • target (Xcodeproj::Project::Object::AbstractTarget) --
def construct_referenced_container_uri(target)
  project = target.project
  relative_path = project.path.relative_path_from(project.path + project.root_object.project_dir_path).to_s
  relative_path = project.path.basename if relative_path == '.'
  "container:#{relative_path}"
end

def initialize(target_or_node)

Parameters:
  • target_or_node (Xcodeproj::Project::Object::AbstractTarget, REXML::Element) --
def initialize(target_or_node)
  create_xml_element_with_fallback(target_or_node, 'BuildableReference') do
    @xml_element.attributes['BuildableIdentifier'] = 'primary'
    set_reference_target(target_or_node, true) if target_or_node
  end
end

def set_reference_target(target, override_buildable_name = false)

Parameters:
  • override_buildable_name (Bool) --
  • target (Xcodeproj::Project::Object::AbstractTarget) --
def set_reference_target(target, override_buildable_name = false)
  @xml_element.attributes['BlueprintIdentifier'] = target.uuid
  @xml_element.attributes['BlueprintName'] = target.name
  @xml_element.attributes['ReferencedContainer'] = construct_referenced_container_uri(target)
  self.buildable_name = construct_buildable_name(target) if override_buildable_name
end

def target_name

Returns:
  • (String) -
def target_name
  @xml_element.attributes['BlueprintName']
end

def target_referenced_container

Returns:
  • (String) -
def target_referenced_container
  @xml_element.attributes['ReferencedContainer']
end

def target_uuid

Other tags:
    Note: - You can use this to `#find` the `Xcodeproj::Project::Object::AbstractTarget`

Returns:
  • (String) -
def target_uuid
  @xml_element.attributes['BlueprintIdentifier']
end