Class: Thrust::IOS::XCodeTools
- Inherits:
-
Object
- Object
- Thrust::IOS::XCodeTools
- Defined in:
- lib/thrust/ios/x_code_tools.rb
Constant Summary collapse
- ProvisioningProfileNotFound =
Class.new(StandardError)
- ProvisioningProfileNotEmbedded =
Class.new(StandardError)
Instance Method Summary collapse
- #build_configuration_directory ⇒ Object
- #build_scheme_or_target(scheme_or_target, build_sdk, architecture = nil) ⇒ Object
- #clean_build ⇒ Object
- #cleanly_create_ipa(target, app_name, signing_identity, provision_search_query = nil) ⇒ Object
-
#initialize(thrust_executor, out, build_configuration, build_directory, options = {}) ⇒ XCodeTools
constructor
A new instance of XCodeTools.
- #kill_simulator ⇒ Object
- #test(scheme, build_configuration, os_version, device_name, timeout, build_dir) ⇒ Object
Constructor Details
#initialize(thrust_executor, out, build_configuration, build_directory, options = {}) ⇒ XCodeTools
Returns a new instance of XCodeTools.
7 8 9 10 11 12 13 14 15 16 |
# File 'lib/thrust/ios/x_code_tools.rb', line 7 def initialize(thrust_executor, out, build_configuration, build_directory, = {}) @thrust_executor = thrust_executor @out = out @git = Thrust::Git.new(@out, @thrust_executor) @build_configuration = build_configuration @build_directory = build_directory @project_name = [:project_name] @workspace_name = [:workspace_name] raise "project_name OR workspace_name required" unless @project_name.nil? ^ @workspace_name.nil? end |
Instance Method Details
#build_configuration_directory ⇒ Object
28 29 30 |
# File 'lib/thrust/ios/x_code_tools.rb', line 28 def build_configuration_directory "#{@build_directory}/#{@build_configuration}-iphoneos" end |
#build_scheme_or_target(scheme_or_target, build_sdk, architecture = nil) ⇒ Object
37 38 39 40 |
# File 'lib/thrust/ios/x_code_tools.rb', line 37 def build_scheme_or_target(scheme_or_target, build_sdk, architecture=nil) @out.puts "Building..." run_xcode(build_sdk, scheme_or_target, architecture) end |
#clean_build ⇒ Object
32 33 34 35 |
# File 'lib/thrust/ios/x_code_tools.rb', line 32 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
18 19 20 21 22 23 24 25 26 |
# File 'lib/thrust/ios/x_code_tools.rb', line 18 def cleanly_create_ipa(target, app_name, signing_identity, provision_search_query = nil) clean_build kill_simulator build_scheme_or_target(target, 'iphoneos') ipa_name = create_ipa(app_name, signing_identity, provision_search_query) verify_provision(app_name, provision_search_query) return ipa_name end |
#kill_simulator ⇒ Object
59 60 61 62 63 64 |
# File 'lib/thrust/ios/x_code_tools.rb', line 59 def kill_simulator @out.puts('Killing simulator...') @thrust_executor.system %q[killall -m -KILL "gdb"] @thrust_executor.system %q[killall -m -KILL "otest"] @thrust_executor.system %q[killall -m -KILL "iPhone Simulator"] end |
#test(scheme, build_configuration, os_version, device_name, timeout, build_dir) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/thrust/ios/x_code_tools.rb', line 42 def test(scheme, build_configuration, os_version, device_name, timeout, build_dir) destination = "OS=#{os_version},name=#{device_name}" timeout ||= "30" cmd = [ "xcodebuild", "test", "-scheme '#{scheme}'", "-configuration '#{build_configuration}'", "-destination '#{destination}'", "-destination-timeout '#{timeout}'", "SYMROOT='#{build_dir}'" ].join(' ') @thrust_executor.check_command_for_failure(cmd) end |