class FastlaneCore::DeviceManager::Device
Use the UDID for the given device when setting the destination Why? Because we might get this error message > The requested device could not be found because multiple devices matched the request.
This happens when you have multiple simulators for a given device type / iOS combination
{ platform:iOS Simulator, id:1685B071-AFB2-4DC1-BE29-8370BA4A6EBD, OS:9.0, name:iPhone 5 } { platform:iOS Simulator, id:A141F23B-96B3-491A-8949-813B376C28A7, OS:9.0, name:iPhone 5 }
We don’t want to deal with that, so we just use the UDID
Attributes
Public Class Methods
Source
# File fastlane_core/lib/fastlane_core/device_manager.rb, line 189 def initialize(name: nil, udid: nil, os_type: nil, os_version: nil, state: nil, is_simulator: nil) self.name = name self.udid = udid self.os_type = os_type self.os_version = os_version self.ios_version = os_version self.state = state self.is_simulator = is_simulator end
Public Instance Methods
Source
# File fastlane_core/lib/fastlane_core/device_manager.rb, line 203 def boot return unless is_simulator return unless os_type == "iOS" return if self.state == 'Booted' # Boot the simulator and wait for it to finish booting UI.message("Booting #{self}") `xcrun simctl bootstatus #{self.udid} -b &> /dev/null` self.state = 'Booted' end
Source
# File fastlane_core/lib/fastlane_core/device_manager.rb, line 230 def delete UI.message("Deleting #{self}") shutdown `xcrun simctl delete #{self.udid}` end
Source
# File fastlane_core/lib/fastlane_core/device_manager.rb, line 236 def disable_slide_to_type return unless is_simulator return unless os_type == "iOS" return unless Gem::Version.new(os_version) >= Gem::Version.new('13.0') UI.message("Disabling 'Slide to Type' #{self}") plist_buddy = '/usr/libexec/PlistBuddy' plist_buddy_cmd = "-c \"Add :KeyboardContinuousPathEnabled bool false\"" plist_path = File.expand_path("~/Library/Developer/CoreSimulator/Devices/#{self.udid}/data/Library/Preferences/com.apple.keyboard.ContinuousPath.plist") Helper.backticks("#{plist_buddy} #{plist_buddy_cmd} #{plist_path} >/dev/null 2>&1") end
Source
# File fastlane_core/lib/fastlane_core/device_manager.rb, line 224 def reset UI.message("Resetting #{self}") shutdown `xcrun simctl erase #{self.udid}` end
Source
# File fastlane_core/lib/fastlane_core/device_manager.rb, line 214 def shutdown return unless is_simulator return unless os_type == "iOS" return if self.state != 'Booted' UI.message("Shutting down #{self.udid}") `xcrun simctl shutdown #{self.udid} 2>/dev/null` self.state = 'Shutdown' end
Source
# File fastlane_core/lib/fastlane_core/device_manager.rb, line 199 def to_s self.name end