Class: Fastlane::Helper::SimctlHelper
- Inherits:
-
Object
- Object
- Fastlane::Helper::SimctlHelper
- Defined in:
- lib/fastlane/plugin/simctl/helper/simctl_helper.rb
Class Method Summary collapse
- .create_device(runtime, type, name) ⇒ Object
- .delete_device(device) ⇒ Object
- .execute_with_simulator_ready(action, block, runtime, type, name) ⇒ Object
Class Method Details
.create_device(runtime, type, name) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/fastlane/plugin/simctl/helper/simctl_helper.rb', line 20 def self.create_device(runtime, type, name) runtime = if runtime.eql? 'latest' SimCtl::Runtime.latest('ios') else SimCtl.runtime(name: runtime) end device_type = SimCtl.devicetype(name: type) device_name = name device_name ||= type.to_s.instance_eval do |obj| obj += "-#{ENV['JOB_NAME']}" if ENV['JOB_NAME'] obj += "@#{ENV['BUILD_NUMBER']}" if ENV['BUILD_NUMBER'] obj end Fastlane::UI.("Starting simulator with runtime: `#{runtime.name}`, device type: `#{device_type.name}`"\ " and device name: `#{device_name}`") SimCtl.reset_device(device_name, device_type, runtime) end |
.delete_device(device) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/fastlane/plugin/simctl/helper/simctl_helper.rb', line 38 def self.delete_device(device) if device.state != :shutdown device.shutdown device.kill device.wait do |d| Fastlane::UI.("Waiting for simulator `#{d.name}` to be shutdown") d.state == :shutdown end end Fastlane::UI.("Deleting simulator `#{device.name}`") device.delete end |
.execute_with_simulator_ready(action, block, runtime, type, name) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/fastlane/plugin/simctl/helper/simctl_helper.rb', line 4 def self.execute_with_simulator_ready(action, block, runtime, type, name) device = create_device(runtime, type, name) device.boot device.wait(90) do |d| Fastlane::UI.("Waiting for simulator `#{d.name}` to be ready") d.state == :booted && d.ready? end begin block.call(action.other_action, device) rescue StandardError => error throw error ensure delete_device(device) end end |