class Xcodeproj::Project

Public Instance Methods

app_scheme() click to toggle source
# File lib/ext/project.rb, line 49
def app_scheme
  scheme_for_scheme_name(app_scheme_name)
end
app_scheme_name() click to toggle source
# File lib/ext/project.rb, line 40
def app_scheme_name
  scheme_name = RSwift::Configuration.new.app_scheme_name
  schemes_names = Xcodeproj::Project.schemes(path)
  scheme_name ||= schemes_names.find do |scheme_name|
    is_app_scheme(scheme_for_scheme_name(scheme_name))
  end
  scheme_name
end
app_target() click to toggle source
# File lib/ext/project.rb, line 24
def app_target
  targets.find { |target| target.product_type.eql? Xcodeproj::Constants::PRODUCT_TYPE_UTI[:application] }
end
debug_build_configuration() click to toggle source
# File lib/ext/project.rb, line 8
def debug_build_configuration
  build_configuration_name = RSwift::Configuration.new.debug_build_configuration
  build_configuration_name ||= RSwift::Constants::CONFIGURATION_PROPERTIES[:debug][:name]
  build_configurations.find do |build_configuration|
    build_configuration.name.eql? build_configuration_name
  end
end
name() click to toggle source
# File lib/ext/project.rb, line 4
def name
  path.dirname.split.last.to_s
end
release_build_configuration() click to toggle source
# File lib/ext/project.rb, line 16
def release_build_configuration
  build_configuration_name = RSwift::Configuration.new.release_build_configuration
  build_configuration_name ||= RSwift::Constants::CONFIGURATION_PROPERTIES[:release][:name]
  build_configurations.find do |build_configuration|
    build_configuration.name.eql? build_configuration_name
  end
end
spec_target() click to toggle source
# File lib/ext/project.rb, line 28
def spec_target
  targets.find { |target| target.product_type.eql? Xcodeproj::Constants::PRODUCT_TYPE_UTI[:unit_test_bundle] }
end
wk_app_target() click to toggle source
# File lib/ext/project.rb, line 32
def wk_app_target
  targets.find { |target| target.product_type.eql? Xcodeproj::Constants::PRODUCT_TYPE_UTI[:watch2_app] }
end
wk_ext_target() click to toggle source
# File lib/ext/project.rb, line 36
def wk_ext_target
  targets.find { |target| target.product_type.eql? Xcodeproj::Constants::PRODUCT_TYPE_UTI[:watch2_extension] }
end

Private Instance Methods

is_app_scheme(scheme) click to toggle source
# File lib/ext/project.rb, line 62
def is_app_scheme(scheme)
  has_proper_launch_action = scheme.launch_action.buildable_product_runnable.buildable_reference.target_uuid.eql?(app_target.uuid)
  has_proper_buildable_action = scheme.profile_action.buildable_product_runnable.buildable_reference.target_uuid.eql?(app_target.uuid)
  has_proper_launch_action && has_proper_buildable_action
end
scheme_for_scheme_name(scheme_name) click to toggle source
# File lib/ext/project.rb, line 55
def scheme_for_scheme_name(scheme_name)
  shared_data_dir = Xcodeproj::XCScheme.shared_data_dir path
  scheme_file_path = "#{shared_data_dir}/#{scheme_name}.xcscheme"
  scheme = Xcodeproj::XCScheme.new(scheme_file_path) if File.exist?(scheme_file_path)
  scheme
end