Class: Thrust::XcodeTools
- Inherits:
-
Object
- Object
- Thrust::XcodeTools
- Defined in:
- lib/thrust/xcode_tools.rb
Constant Summary collapse
- ProvisioningProfileNotFound =
Class.new(StandardError)
- ProvisioningProfileNotEmbedded =
Class.new(StandardError)
Instance Method Summary collapse
- #build_configuration_directory ⇒ Object
- #build_scheme(scheme, build_sdk, clean = false) ⇒ Object
- #build_target(target, build_sdk, clean = false) ⇒ Object
- #clean_build ⇒ Object
- #cleanly_create_ipa(target, app_name, signing_identity, provision_search_query = nil) ⇒ Object
- #find_executable_name(scheme) ⇒ 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.
6 7 8 9 10 11 12 13 14 15 |
# File 'lib/thrust/xcode_tools.rb', line 6 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
26 27 28 |
# File 'lib/thrust/xcode_tools.rb', line 26 def build_configuration_directory "#{@build_directory}/#{@build_configuration}-iphoneos" end |
#build_scheme(scheme, build_sdk, clean = false) ⇒ Object
35 36 37 38 |
# File 'lib/thrust/xcode_tools.rb', line 35 def build_scheme(scheme, build_sdk, clean = false) @out.puts 'Building...' build("-scheme \"#{scheme}\"", build_sdk, clean) end |
#build_target(target, build_sdk, clean = false) ⇒ Object
40 41 42 43 |
# File 'lib/thrust/xcode_tools.rb', line 40 def build_target(target, build_sdk, clean = false) @out.puts 'Building...' build("-target \"#{target}\"", build_sdk, clean) end |
#clean_build ⇒ Object
30 31 32 33 |
# File 'lib/thrust/xcode_tools.rb', line 30 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
17 18 19 20 21 22 23 24 |
# File 'lib/thrust/xcode_tools.rb', line 17 def cleanly_create_ipa(target, app_name, signing_identity, provision_search_query = nil) kill_simulator build_target(target, 'iphoneos', true) ipa_name = create_ipa(app_name, signing_identity, provision_search_query) verify_provision(app_name, provision_search_query) return ipa_name end |
#find_executable_name(scheme) ⇒ Object
69 70 71 72 73 |
# File 'lib/thrust/xcode_tools.rb', line 69 def find_executable_name(scheme) build_settings = @thrust_executor.capture_output_from_system("xcodebuild -scheme \"#{scheme}\" -showBuildSettings") matches = build_settings.match(/EXECUTABLE_NAME = (.*)$/) matches.captures.first end |
#kill_simulator ⇒ Object
62 63 64 65 66 67 |
# File 'lib/thrust/xcode_tools.rb', line 62 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 "iOS Simulator"] end |
#test(scheme, build_configuration, os_version, device_name, timeout, build_dir) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/thrust/xcode_tools.rb', line 45 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 |