Class: Thrust::IOS::XCodeTools

Inherits:
Object
  • Object
show all
Defined in:
lib/thrust/ios/x_code_tools.rb

Constant Summary collapse

ProvisioningProfileNotFound =
Class.new(StandardError)

Instance Method Summary collapse

Constructor Details

#initialize(thrust_executor, out, build_configuration, build_directory, options = {}) ⇒ XCodeTools

Returns a new instance of XCodeTools.



4
5
6
7
8
9
10
11
12
13
# File 'lib/thrust/ios/x_code_tools.rb', line 4

def initialize(thrust_executor, out, build_configuration, build_directory, options = {})
  @thrust_executor = thrust_executor
  @out = out
  @git = Thrust::Git.new(@thrust_executor, @out)
  @build_configuration = build_configuration
  @build_directory = build_directory
  @project_name = options[:project_name]
  @workspace_name = options[:workspace_name]
  raise "project_name OR workspace_name required" unless @project_name.nil? ^ @workspace_name.nil?
end

Instance Method Details

#build_configuration_directoryObject



22
23
24
# File 'lib/thrust/ios/x_code_tools.rb', line 22

def build_configuration_directory
  "#{@build_directory}/#{@build_configuration}-iphoneos"
end

#build_scheme_or_target(scheme_or_target, build_sdk, architecture = nil) ⇒ Object



31
32
33
34
# File 'lib/thrust/ios/x_code_tools.rb', line 31

def build_scheme_or_target(scheme_or_target, build_sdk, architecture=nil)
  @out.puts "Building..."
  run_xcode('build', build_sdk, scheme_or_target, architecture)
end

#clean_buildObject



26
27
28
29
# File 'lib/thrust/ios/x_code_tools.rb', line 26

def clean_build
  @out.puts 'Cleaning...'
  FileUtils.rm_rf(@build_directory)
end

#cleanly_create_ipa(target, app_name, signing_identity, provision_search_query = nil) ⇒ Object



15
16
17
18
19
20
# File 'lib/thrust/ios/x_code_tools.rb', line 15

def cleanly_create_ipa(target, app_name, signing_identity, provision_search_query = nil)
  clean_build
  kill_simulator
  build_scheme_or_target(target, 'iphoneos')
  create_ipa(app_name, signing_identity, provision_search_query)
end