lib/xcodeproj/scheme/archive_action.rb
require 'xcodeproj/scheme/abstract_scheme_action'
module Xcodeproj
class XCScheme
# This class wraps the ArchiveAction node of a .xcscheme XML file
#
class ArchiveAction < AbstractSchemeAction
# @param [REXML::Element] node
# The 'ArchiveAction' XML node that this object will wrap.
# If nil, will create a default XML node to use.
#
def initialize(node = nil)
create_xml_element_with_fallback(node, 'ArchiveAction') do
self.build_configuration = 'Release'
self.reveal_archive_in_organizer = true
end
end
# @return [Bool]
# Whether the Archive will be revealed in Xcode's Organizer
# after it's done building.
#
def reveal_archive_in_organizer?
string_to_bool(@xml_element.attributes['revealArchiveInOrganizer'])
end
# @param [Bool] flag
# Set whether the Archive will be revealed in Xcode's Organizer
# after it's done building.
#
def reveal_archive_in_organizer=(flag)
@xml_element.attributes['revealArchiveInOrganizer'] = bool_to_string(flag)
end
# @return [String]
# The custom name to give to the archive.
# If nil, the generated archive will have the same name as the one
# set in the associated target's Build Settings for the built product.
#
def custom_archive_name
@xml_element.attributes['customArchiveName']
end
# @param [String] name
# Set the custom name to use for the built archive
# If nil, the customization of the archive name will be removed and
# the generated archive will have the same name as the one set in the
# associated target's Build Settings for the build product.
#
def custom_archive_name=(name)
if name
@xml_element.attributes['customArchiveName'] = name
else
@xml_element.delete_attribute('customArchiveName')
end
end
end
end
end