Class: FastlaneCore::DeviceManager::Device
- Inherits:
-
Object
- Object
- FastlaneCore::DeviceManager::Device
- Defined in:
- fastlane_core/lib/fastlane_core/device_manager.rb
Overview
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
Instance Attribute Summary collapse
-
#ios_version ⇒ Object
Preserved for backwards compatibility.
-
#is_simulator ⇒ Object
Returns the value of attribute is_simulator.
-
#name ⇒ Object
Returns the value of attribute name.
-
#os_type ⇒ Object
Returns the value of attribute os_type.
-
#os_version ⇒ Object
Returns the value of attribute os_version.
-
#state ⇒ Object
Returns the value of attribute state.
-
#udid ⇒ Object
Returns the value of attribute udid.
Instance Method Summary collapse
- #boot ⇒ Object
- #delete ⇒ Object
- #disable_slide_to_type ⇒ Object
-
#initialize(name: nil, udid: nil, os_type: nil, os_version: nil, state: nil, is_simulator: nil) ⇒ Device
constructor
A new instance of Device.
- #reset ⇒ Object
- #shutdown ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(name: nil, udid: nil, os_type: nil, os_version: nil, state: nil, is_simulator: nil) ⇒ Device
Returns a new instance of Device.
188 189 190 191 192 193 194 195 196 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 188 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 |
Instance Attribute Details
#ios_version ⇒ Object
Preserved for backwards compatibility
184 185 186 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 184 def ios_version @ios_version end |
#is_simulator ⇒ Object
Returns the value of attribute is_simulator.
186 187 188 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 186 def is_simulator @is_simulator end |
#name ⇒ Object
Returns the value of attribute name.
180 181 182 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 180 def name @name end |
#os_type ⇒ Object
Returns the value of attribute os_type.
182 183 184 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 182 def os_type @os_type end |
#os_version ⇒ Object
Returns the value of attribute os_version.
183 184 185 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 183 def os_version @os_version end |
#state ⇒ Object
Returns the value of attribute state.
185 186 187 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 185 def state @state end |
#udid ⇒ Object
Returns the value of attribute udid.
181 182 183 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 181 def udid @udid end |
Instance Method Details
#boot ⇒ Object
202 203 204 205 206 207 208 209 210 211 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 202 def boot return unless is_simulator return unless os_type == "iOS" return if self.state == 'Booted' UI.("Booting #{self}") `xcrun simctl boot #{self.udid} 2>/dev/null` self.state = 'Booted' end |
#delete ⇒ Object
229 230 231 232 233 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 229 def delete UI.("Deleting #{self}") shutdown `xcrun simctl delete #{self.udid}` end |
#disable_slide_to_type ⇒ Object
235 236 237 238 239 240 241 242 243 244 245 246 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 235 def return unless is_simulator return unless os_type == "iOS" return unless Gem::Version.new(os_version) >= Gem::Version.new('13.0') UI.("Disabling 'Slide to Type' #{self}") plist_buddy = '/usr/libexec/PlistBuddy' plist_buddy_cmd = "-c \"Add :KeyboardContinuousPathEnabled bool false\"" plist_path = File.("~/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 |
#reset ⇒ Object
223 224 225 226 227 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 223 def reset UI.("Resetting #{self}") shutdown `xcrun simctl erase #{self.udid}` end |
#shutdown ⇒ Object
213 214 215 216 217 218 219 220 221 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 213 def shutdown return unless is_simulator return unless os_type == "iOS" return if self.state != 'Booted' UI.("Shutting down #{self.udid}") `xcrun simctl shutdown #{self.udid} 2>/dev/null` self.state = 'Shutdown' end |
#to_s ⇒ Object
198 199 200 |
# File 'fastlane_core/lib/fastlane_core/device_manager.rb', line 198 def to_s self.name end |