fastlane_core 0.41.3 → 0.42.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8756fcc16ab3e05e3429c167bfeec9f527ac2b7f
|
4
|
+
data.tar.gz: 363bab72d387aaf4555fdc69a518df68e0507e94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7a0179679220b305704d16ad21169c4a7a974f078dc300b86e33fb1ea789caf66945116afb96603f19cefce864f484a4213195d8587228f1df1f8cd740a7afd2
|
7
|
+
data.tar.gz: 071d8d281c09e36ff9ba9135189485589b50357bae94125270d12a342c3106114ea53007b8c02a5314dec7e12e81fcdceba784ed50c9f0c56fce1968a0d7ad88
|
data/lib/fastlane_core.rb
CHANGED
@@ -16,7 +16,7 @@ require 'fastlane_core/command_executor'
|
|
16
16
|
require 'fastlane_core/ipa_upload_package_builder'
|
17
17
|
require 'fastlane_core/print_table'
|
18
18
|
require 'fastlane_core/project'
|
19
|
-
require 'fastlane_core/
|
19
|
+
require 'fastlane_core/device_manager'
|
20
20
|
require 'fastlane_core/crash_reporting/crash_reporting'
|
21
21
|
require 'fastlane_core/ui/ui'
|
22
22
|
|
@@ -14,7 +14,8 @@ module FastlaneCore
|
|
14
14
|
next if option.description.to_s.empty? # "private" options
|
15
15
|
|
16
16
|
short_switch = option.short_option
|
17
|
-
|
17
|
+
key = option.key
|
18
|
+
validate_short_switch(used_switches, short_switch, key)
|
18
19
|
|
19
20
|
type = option.data_type
|
20
21
|
|
@@ -55,7 +56,7 @@ module FastlaneCore
|
|
55
56
|
# Passing a nil value to global_option has been shown to create problems with
|
56
57
|
# option parsing!
|
57
58
|
#
|
58
|
-
# See: https://github.com/fastlane/
|
59
|
+
# See: https://github.com/fastlane/fastlane_core/pull/89
|
59
60
|
#
|
60
61
|
# If we don't have a data type for this option, we tell it to act like a String.
|
61
62
|
# This allows us to get a reasonable value for boolean options that can be
|
@@ -67,13 +68,13 @@ module FastlaneCore
|
|
67
68
|
end
|
68
69
|
end
|
69
70
|
|
70
|
-
def validate_short_switch(used_switches, short_switch)
|
71
|
+
def validate_short_switch(used_switches, short_switch, key)
|
71
72
|
return if short_switch.nil?
|
72
73
|
|
73
|
-
UI.user_error!("Short option #{short_switch} already taken for key #{
|
74
|
-
UI.user_error!("-v is already used for the version (key #{
|
75
|
-
UI.user_error!("-h is already used for the help screen (key #{
|
76
|
-
UI.user_error!("-t is already used for the trace screen (key #{
|
74
|
+
UI.user_error!("Short option #{short_switch} already taken for key #{key}") if used_switches.include?(short_switch)
|
75
|
+
UI.user_error!("-v is already used for the version (key #{key})") if short_switch == "-v"
|
76
|
+
UI.user_error!("-h is already used for the help screen (key #{key})") if short_switch == "-h"
|
77
|
+
UI.user_error!("-t is already used for the trace screen (key #{key})") if short_switch == "-t"
|
77
78
|
|
78
79
|
used_switches << short_switch
|
79
80
|
end
|
@@ -28,10 +28,6 @@ module FastlaneCore
|
|
28
28
|
UI.user_error!("Do not let descriptions end with a '.', since it's used for user inputs as well") if description[-1] == '.'
|
29
29
|
end
|
30
30
|
|
31
|
-
if type.to_s.length > 0 and short_option.to_s.length == 0
|
32
|
-
UI.user_error!("Type '#{type}' for key '#{key}' requires a short option")
|
33
|
-
end
|
34
|
-
|
35
31
|
if conflicting_options
|
36
32
|
conflicting_options.each do |conflicting_option_key|
|
37
33
|
UI.user_error!("Conflicting option key must be a symbol") unless conflicting_option_key.kind_of? Symbol
|
@@ -1,14 +1,15 @@
|
|
1
1
|
require 'open3'
|
2
|
+
require 'plist'
|
2
3
|
|
3
4
|
module FastlaneCore
|
4
|
-
class
|
5
|
+
class DeviceManager
|
5
6
|
class << self
|
6
|
-
def requested_os_type
|
7
|
-
|
7
|
+
def all(requested_os_type = "")
|
8
|
+
return connected_devices(requested_os_type) + simulators(requested_os_type)
|
8
9
|
end
|
9
10
|
|
10
|
-
def
|
11
|
-
UI.message("Fetching available devices") if $verbose
|
11
|
+
def simulators(requested_os_type = "")
|
12
|
+
UI.message("Fetching available simulator devices") if $verbose
|
12
13
|
|
13
14
|
@devices = []
|
14
15
|
os_type = 'unknown'
|
@@ -31,8 +32,8 @@ module FastlaneCore
|
|
31
32
|
# iPad 2 (0EDE6AFC-3767-425A-9658-AAA30A60F212) (Shutdown)
|
32
33
|
# iPad Air 2 (4F3B8059-03FD-4D72-99C0-6E9BBEE2A9CE) (Shutdown) (unavailable, device type profile not found)
|
33
34
|
match = line.match(/\s+([^\(]+) \(([-0-9A-F]+)\) \(([^\(]+)\)(.*unavailable.*)?/)
|
34
|
-
if match && !match[4] && os_type == requested_os_type
|
35
|
-
@devices << Device.new(name: match[1], os_version: os_version, udid: match[2], state: match[3])
|
35
|
+
if match && !match[4] && (os_type == requested_os_type || requested_os_type == "")
|
36
|
+
@devices << Device.new(name: match[1], os_version: os_version, udid: match[2], state: match[3], is_simulator: true)
|
36
37
|
end
|
37
38
|
end
|
38
39
|
end
|
@@ -40,20 +41,56 @@ module FastlaneCore
|
|
40
41
|
return @devices
|
41
42
|
end
|
42
43
|
|
43
|
-
def
|
44
|
-
|
45
|
-
end
|
44
|
+
def connected_devices(requested_os_type)
|
45
|
+
Helper.log.info "Fetching available connected devices" if $verbose
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
47
|
+
device_types = if requested_os_type == "tvOS"
|
48
|
+
["AppleTV"]
|
49
|
+
elsif requested_os_type == "iOS"
|
50
|
+
["iPhone", "iPad", "iPod"]
|
51
|
+
else
|
52
|
+
[]
|
53
|
+
end
|
51
54
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
55
|
+
devices = [] # Return early if no supported devices are being searched for
|
56
|
+
if device_types.count == 0
|
57
|
+
return devices
|
58
|
+
end
|
59
|
+
|
60
|
+
usb_devices_output = ''
|
61
|
+
Open3.popen3("system_profiler SPUSBDataType -xml") do |stdin, stdout, stderr, wait_thr|
|
62
|
+
usb_devices_output = stdout.read
|
63
|
+
end
|
64
|
+
|
65
|
+
device_uuids = []
|
66
|
+
result = Plist.parse_xml(usb_devices_output)
|
67
|
+
result[0]['_items'].each do |host_controller| # loop just incase the host system has more then 1 controller
|
68
|
+
host_controller['_items'].each do |usb_device|
|
69
|
+
is_supported_device = device_types.any? { |device_type| usb_device['_name'] == device_type }
|
70
|
+
if is_supported_device && usb_device['serial_num'].length == 40
|
71
|
+
device_uuids.push(usb_device['serial_num'])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
if device_uuids.count > 0 # instruments takes a little while to return so skip it if we have no devices
|
77
|
+
instruments_devices_output = ''
|
78
|
+
Open3.popen3("instruments -s devices") do |stdin, stdout, stderr, wait_thr|
|
79
|
+
instruments_devices_output = stdout.read
|
80
|
+
end
|
81
|
+
|
82
|
+
instruments_devices_output.split(/\n/).each do |instruments_device|
|
83
|
+
device_uuids.each do |device_uuid|
|
84
|
+
match = instruments_device.match(/(.+) \(([0-9.]+)\) \[([0-9a-f]+)\]?/)
|
85
|
+
if match && match[3] == device_uuid
|
86
|
+
devices << Device.new(name: match[1], udid: match[3], os_version: match[2], state: "Booted", is_simulator: false)
|
87
|
+
Helper.log.info "USB Device Found - \"" + match[1] + "\" (" + match[2] + ") UUID:" + match[3] if $verbose
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
return devices
|
57
94
|
end
|
58
95
|
|
59
96
|
# The code below works from Xcode 7 on
|
@@ -104,13 +141,15 @@ module FastlaneCore
|
|
104
141
|
attr_accessor :os_version
|
105
142
|
attr_accessor :ios_version # Preserved for backwards compatibility
|
106
143
|
attr_accessor :state
|
144
|
+
attr_accessor :is_simulator
|
107
145
|
|
108
|
-
def initialize(name: nil, udid: nil, os_version: nil, state: nil)
|
146
|
+
def initialize(name: nil, udid: nil, os_version: nil, state: nil, is_simulator: nil)
|
109
147
|
self.name = name
|
110
148
|
self.udid = udid
|
111
149
|
self.os_version = os_version
|
112
150
|
self.ios_version = os_version
|
113
151
|
self.state = state
|
152
|
+
self.is_simulator = is_simulator
|
114
153
|
end
|
115
154
|
|
116
155
|
def to_s
|
@@ -126,18 +165,42 @@ module FastlaneCore
|
|
126
165
|
end
|
127
166
|
end
|
128
167
|
|
168
|
+
class Simulator
|
169
|
+
class << self
|
170
|
+
def all
|
171
|
+
return DeviceManager.simulators('iOS')
|
172
|
+
end
|
173
|
+
|
174
|
+
# Reset all simulators of this type
|
175
|
+
def reset_all
|
176
|
+
all.each(&:reset)
|
177
|
+
end
|
178
|
+
|
179
|
+
# Reset simulator by UDID or name and OS version
|
180
|
+
# Latter is useful when combined with -destination option of xcodebuild
|
181
|
+
def reset(udid: nil, name: nil, os_version: nil)
|
182
|
+
match = all.detect { |device| device.udid == udid || device.name == name && device.os_version == os_version }
|
183
|
+
match.reset if match
|
184
|
+
end
|
185
|
+
|
186
|
+
def clear_cache
|
187
|
+
@devices = nil
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
|
129
192
|
class SimulatorTV < Simulator
|
130
193
|
class << self
|
131
|
-
def
|
132
|
-
'tvOS'
|
194
|
+
def all
|
195
|
+
return DeviceManager.simulators('tvOS')
|
133
196
|
end
|
134
197
|
end
|
135
198
|
end
|
136
199
|
|
137
200
|
class SimulatorWatch < Simulator
|
138
201
|
class << self
|
139
|
-
def
|
140
|
-
'watchOS'
|
202
|
+
def all
|
203
|
+
return DeviceManager.simulators('watchOS')
|
141
204
|
end
|
142
205
|
end
|
143
206
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.42.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -357,6 +357,7 @@ files:
|
|
357
357
|
- lib/fastlane_core/configuration/configuration_file.rb
|
358
358
|
- lib/fastlane_core/crash_reporting/clean_stack_trace.rb
|
359
359
|
- lib/fastlane_core/crash_reporting/crash_reporting.rb
|
360
|
+
- lib/fastlane_core/device_manager.rb
|
360
361
|
- lib/fastlane_core/helper.rb
|
361
362
|
- lib/fastlane_core/ipa_file_analyser.rb
|
362
363
|
- lib/fastlane_core/ipa_upload_package_builder.rb
|
@@ -368,7 +369,6 @@ files:
|
|
368
369
|
- lib/fastlane_core/print_table.rb
|
369
370
|
- lib/fastlane_core/project.rb
|
370
371
|
- lib/fastlane_core/provisioning_profile.rb
|
371
|
-
- lib/fastlane_core/simulator.rb
|
372
372
|
- lib/fastlane_core/string_filters.rb
|
373
373
|
- lib/fastlane_core/ui/disable_colors.rb
|
374
374
|
- lib/fastlane_core/ui/fastlane_runner.rb
|
@@ -399,7 +399,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
399
399
|
version: '0'
|
400
400
|
requirements: []
|
401
401
|
rubyforge_project:
|
402
|
-
rubygems_version: 2.
|
402
|
+
rubygems_version: 2.2.2
|
403
403
|
signing_key:
|
404
404
|
specification_version: 4
|
405
405
|
summary: Contains all shared code/dependencies of the fastlane.tools
|