class Xcodeproj::Project::Object::AbstractBuildPhase


This class is abstract and it doesn’t appear in the project document.
@abstract

def add_file_reference(file_ref, avoid_duplicates = false)

Returns:
  • (PBXBuildFile) - the build file generated.

Parameters:
  • file_ref (PBXFileReference) --
def add_file_reference(file_ref, avoid_duplicates = false)
  if avoid_duplicates && existing = build_file(file_ref)
    existing
  else
    build_file = project.new(PBXBuildFile)
    build_file.file_ref = file_ref
    files << build_file
    build_file
  end
end

def ascii_plist_annotation

def ascii_plist_annotation
  " #{display_name} "
end

def build_file(file_ref)

Returns:
  • (PBXBuildFile) - the first build file associated with the given
def build_file(file_ref)
  (file_ref.referrers & files).first
end

def clear

Returns:
  • (void) -
def clear
  files.objects.each do |bf|
    remove_build_file(bf)
  end
end

def display_name

def display_name
  super.gsub(/BuildPhase$/, '')
end

def file_display_names

Returns:
  • (Array) - The display name of the build files.
def file_display_names
  files.map(&:display_name)
end

def files_references

Returns:
  • (Array) - the list of all the files
def files_references
  files.map(&:file_ref)
end

def include?(file_ref)

Returns:
  • (Bool) - whether the reference is already present.

Parameters:
  • file_ref (PBXFileReference) --
def include?(file_ref)
  !build_file(file_ref).nil?
end

def remove_build_file(build_file)

Returns:
  • (void) -

Parameters:
  • build_file (PBXBuildFile) -- the file to remove
def remove_build_file(build_file)
  build_file.file_ref = nil
  build_file.remove_from_project
end

def remove_file_reference(file_ref)

Returns:
  • (void) -

Parameters:
  • file_ref (PBXFileReference) --
def remove_file_reference(file_ref)
  build_file = files.find { |bf| bf.file_ref == file_ref }
  remove_build_file(build_file) if build_file
end

def sort(_options = nil)

Returns:
  • (void) -

Parameters:
  • _options (Hash) --
def sort(_options = nil)
  files.sort! do |x, y|
    result = File.basename(x.display_name.downcase, '.*') <=> File.basename(y.display_name.downcase, '.*')
    if result.zero?
      result = File.extname(x.display_name.downcase) <=> File.extname(y.display_name.downcase)
      if result.zero? && x.file_ref.respond_to?(:full_path) && y.file_ref.respond_to?(:full_path)
        result = x.file_ref.full_path.to_s.downcase <=> y.file_ref.full_path.to_s.downcase
      end
    end
    result
  end
end