fastlane 2.157.0 → 2.157.1

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
  SHA256:
3
- metadata.gz: 54d4961677c76fce8c6ecb5e8c89f9b28ea818abd3dc886217d8eaf4e198902b
4
- data.tar.gz: a36d89c144e59c29e7dc94eeb8f51a72b3a50a9ed2813ca700d8ee7008d778de
3
+ metadata.gz: 55737a8f7b3af40ddeb4e00f4466372cfa18a26add15401b31ada8a8c75e1fbc
4
+ data.tar.gz: afd86451de8c50a3072ebb5a52fd4193b6af6c22a4c578ad1de0b5d3a5a5a110
5
5
  SHA512:
6
- metadata.gz: ef36ec87ab67fa77d75cb6836e994463de4f550e6ff0bc832690c734c09a8a21cd9644c90657d29894baf2b4b7e4d87269f7c8d350ce0300ee2b162f3a861870
7
- data.tar.gz: d8a4392c60f47e7b7d73a374020c854694f27a91a59a23d33a6f0de2464efdd2b653bfb6a999faa3b1657a7aa4d29a097ef7d8cff34eeec5481bafb2e5612339
6
+ metadata.gz: 8726dd0393f1af51a65958340652efc406be6e78b65e03d4febaf5bd944fc2224c5cd05e05cd4719a0c9045d6734d0ca1dc9c772b4ca5519292f927ceb3b8fef
7
+ data.tar.gz: 932807e7809d67579397f6a513161342ace1afb4589058d7e77607961681de53a9424742e3bb3b757980bacfe0b7bc5d48d19cb7f1bb21de960cf516c83ff9ca
data/README.md CHANGED
@@ -34,17 +34,29 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
34
34
  <!-- This table is regenerated and resorted on each release -->
35
35
  <table id='team'>
36
36
  <tr>
37
+ <td id='matthew-ellis'>
38
+ <a href='https://github.com/matthewellis'>
39
+ <img src='https://github.com/matthewellis.png?size=140'>
40
+ </a>
41
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
42
+ </td>
37
43
  <td id='olivier-halligon'>
38
44
  <a href='https://github.com/AliSoftware'>
39
45
  <img src='https://github.com/AliSoftware.png?size=140'>
40
46
  </a>
41
47
  <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
42
48
  </td>
43
- <td id='stefan-natchev'>
44
- <a href='https://github.com/snatchev'>
45
- <img src='https://github.com/snatchev.png?size=140'>
49
+ <td id='iulian-onofrei'>
50
+ <a href='https://github.com/revolter'>
51
+ <img src='https://github.com/revolter.png?size=140'>
46
52
  </a>
47
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
54
+ </td>
55
+ <td id='jimmy-dee'>
56
+ <a href='https://github.com/jdee'>
57
+ <img src='https://github.com/jdee.png?size=140'>
58
+ </a>
59
+ <h4 align='center'>Jimmy Dee</h4>
48
60
  </td>
49
61
  <td id='jan-piotrowski'>
50
62
  <a href='https://github.com/janpio'>
@@ -52,128 +64,116 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
52
64
  </a>
53
65
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
54
66
  </td>
55
- <td id='max-ott'>
56
- <a href='https://github.com/max-ott'>
57
- <img src='https://github.com/max-ott.png?size=140'>
58
- </a>
59
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
60
- </td>
61
- <td id='jorge-revuelta-h'>
62
- <a href='https://github.com/minuscorp'>
63
- <img src='https://github.com/minuscorp.png?size=140'>
64
- </a>
65
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
66
- </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='joshua-liebowitz'>
70
- <a href='https://github.com/taquitos'>
71
- <img src='https://github.com/taquitos.png?size=140'>
69
+ <td id='fumiya-nakamura'>
70
+ <a href='https://github.com/nafu'>
71
+ <img src='https://github.com/nafu.png?size=140'>
72
72
  </a>
73
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
74
74
  </td>
75
- <td id='manu-wallner'>
76
- <a href='https://github.com/milch'>
77
- <img src='https://github.com/milch.png?size=140'>
75
+ <td id='josh-holtz'>
76
+ <a href='https://github.com/joshdholtz'>
77
+ <img src='https://github.com/joshdholtz.png?size=140'>
78
78
  </a>
79
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
80
80
  </td>
81
- <td id='daniel-jankowski'>
82
- <a href='https://github.com/mollyIV'>
83
- <img src='https://github.com/mollyIV.png?size=140'>
81
+ <td id='andrew-mcburney'>
82
+ <a href='https://github.com/armcburney'>
83
+ <img src='https://github.com/armcburney.png?size=140'>
84
84
  </a>
85
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
85
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
86
86
  </td>
87
- <td id='jimmy-dee'>
88
- <a href='https://github.com/jdee'>
89
- <img src='https://github.com/jdee.png?size=140'>
87
+ <td id='kohki-miki'>
88
+ <a href='https://github.com/giginet'>
89
+ <img src='https://github.com/giginet.png?size=140'>
90
90
  </a>
91
- <h4 align='center'>Jimmy Dee</h4>
91
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
92
92
  </td>
93
- <td id='maksym-grebenets'>
94
- <a href='https://github.com/mgrebenets'>
95
- <img src='https://github.com/mgrebenets.png?size=140'>
93
+ <td id='helmut-januschka'>
94
+ <a href='https://github.com/hjanuschka'>
95
+ <img src='https://github.com/hjanuschka.png?size=140'>
96
96
  </a>
97
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
98
98
  </td>
99
99
  </tr>
100
100
  <tr>
101
- <td id='kohki-miki'>
102
- <a href='https://github.com/giginet'>
103
- <img src='https://github.com/giginet.png?size=140'>
101
+ <td id='daniel-jankowski'>
102
+ <a href='https://github.com/mollyIV'>
103
+ <img src='https://github.com/mollyIV.png?size=140'>
104
104
  </a>
105
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
105
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
106
106
  </td>
107
- <td id='andrew-mcburney'>
108
- <a href='https://github.com/armcburney'>
109
- <img src='https://github.com/armcburney.png?size=140'>
107
+ <td id='jorge-revuelta-h'>
108
+ <a href='https://github.com/minuscorp'>
109
+ <img src='https://github.com/minuscorp.png?size=140'>
110
110
  </a>
111
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
112
112
  </td>
113
- <td id='luka-mirosevic'>
114
- <a href='https://github.com/lmirosevic'>
115
- <img src='https://github.com/lmirosevic.png?size=140'>
113
+ <td id='max-ott'>
114
+ <a href='https://github.com/max-ott'>
115
+ <img src='https://github.com/max-ott.png?size=140'>
116
116
  </a>
117
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
118
118
  </td>
119
- <td id='josh-holtz'>
120
- <a href='https://github.com/joshdholtz'>
121
- <img src='https://github.com/joshdholtz.png?size=140'>
119
+ <td id='maksym-grebenets'>
120
+ <a href='https://github.com/mgrebenets'>
121
+ <img src='https://github.com/mgrebenets.png?size=140'>
122
122
  </a>
123
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
123
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
124
124
  </td>
125
- <td id='fumiya-nakamura'>
126
- <a href='https://github.com/nafu'>
127
- <img src='https://github.com/nafu.png?size=140'>
125
+ <td id='aaron-brager'>
126
+ <a href='https://github.com/getaaron'>
127
+ <img src='https://github.com/getaaron.png?size=140'>
128
128
  </a>
129
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
129
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
+ <td id='stefan-natchev'>
134
+ <a href='https://github.com/snatchev'>
135
+ <img src='https://github.com/snatchev.png?size=140'>
136
+ </a>
137
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
138
+ </td>
133
139
  <td id='danielle-tomlinson'>
134
140
  <a href='https://github.com/endocrimes'>
135
141
  <img src='https://github.com/endocrimes.png?size=140'>
136
142
  </a>
137
143
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
138
144
  </td>
139
- <td id='matthew-ellis'>
140
- <a href='https://github.com/matthewellis'>
141
- <img src='https://github.com/matthewellis.png?size=140'>
142
- </a>
143
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
144
- </td>
145
- <td id='aaron-brager'>
146
- <a href='https://github.com/getaaron'>
147
- <img src='https://github.com/getaaron.png?size=140'>
145
+ <td id='manu-wallner'>
146
+ <a href='https://github.com/milch'>
147
+ <img src='https://github.com/milch.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
150
150
  </td>
151
- <td id='helmut-januschka'>
152
- <a href='https://github.com/hjanuschka'>
153
- <img src='https://github.com/hjanuschka.png?size=140'>
151
+ <td id='luka-mirosevic'>
152
+ <a href='https://github.com/lmirosevic'>
153
+ <img src='https://github.com/lmirosevic.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
156
156
  </td>
157
- <td id='felix-krause'>
158
- <a href='https://github.com/KrauseFx'>
159
- <img src='https://github.com/KrauseFx.png?size=140'>
157
+ <td id='joshua-liebowitz'>
158
+ <a href='https://github.com/taquitos'>
159
+ <img src='https://github.com/taquitos.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='iulian-onofrei'>
166
- <a href='https://github.com/revolter'>
167
- <img src='https://github.com/revolter.png?size=140'>
168
- </a>
169
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
170
- </td>
171
165
  <td id='jérôme-lacoste'>
172
166
  <a href='https://github.com/lacostej'>
173
167
  <img src='https://github.com/lacostej.png?size=140'>
174
168
  </a>
175
169
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
176
170
  </td>
171
+ <td id='felix-krause'>
172
+ <a href='https://github.com/KrauseFx'>
173
+ <img src='https://github.com/KrauseFx.png?size=140'>
174
+ </a>
175
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
176
+ </td>
177
177
  </table>
178
178
 
179
179
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -81,7 +81,7 @@ module Deliver
81
81
 
82
82
  screenshots_per_display_type.each do |display_type, screenshots|
83
83
  # create AppScreenshotSet for given display_type if it doesn't exsit
84
- app_screenshot_set = app_screenshot_set_per_locale_and_display_type[language][display_type]
84
+ app_screenshot_set = (app_screenshot_set_per_locale_and_display_type[language] || {})[display_type]
85
85
  app_screenshot_set ||= localization.create_app_screenshot_set(attributes: { screenshotDisplayType: display_type })
86
86
 
87
87
  # iterate over screenshots per display size with index
@@ -27,7 +27,7 @@ module Deliver
27
27
 
28
28
  def login
29
29
  UI.message("Login to App Store Connect (#{options[:username]})")
30
- Spaceship::ConnectAPI.login(options[:username])
30
+ Spaceship::ConnectAPI.login(options[:username], nil, use_portal: false, use_tunes: true)
31
31
  Spaceship::ConnectAPI.select_team
32
32
  UI.message("Login successful")
33
33
  end
@@ -5,7 +5,7 @@ module Fastlane
5
5
  require 'spaceship'
6
6
 
7
7
  UI.message("Login to App Store Connect (#{params[:username]})")
8
- Spaceship::ConnectAPI.login(params[:username])
8
+ Spaceship::ConnectAPI.login(params[:username], use_portal: false, use_tunes: true)
9
9
  Spaceship::ConnectAPI.select_team
10
10
  UI.message("Login successful")
11
11
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.157.0'.freeze
2
+ VERSION = '2.157.1'.freeze
3
3
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
4
4
  MINIMUM_XCODE_RELEASE = "7.0".freeze
5
5
  RUBOCOP_REQUIREMENT = '0.49.1'.freeze
@@ -14,4 +14,4 @@ class Deliverfile: DeliverfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.157.0
17
+ // Generated with fastlane 2.157.1
@@ -245,4 +245,4 @@ extension DeliverfileProtocol {
245
245
 
246
246
  // Please don't remove the lines below
247
247
  // They are used to detect outdated files
248
- // FastlaneRunnerAPIVersion [0.9.35]
248
+ // FastlaneRunnerAPIVersion [0.9.36]
@@ -9118,7 +9118,7 @@ func xcov(workspace: String? = nil,
9118
9118
  coverallsServiceJobId: String? = nil,
9119
9119
  coverallsRepoToken: String? = nil,
9120
9120
  xcconfig: String? = nil,
9121
- ideFoundationPath: String = "/Applications/Xcode-12.beta.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9121
+ ideFoundationPath: String = "/Applications/Xcode-11.5.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9122
9122
  legacySupport: Bool = false)
9123
9123
  {
9124
9124
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -9264,4 +9264,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
9264
9264
 
9265
9265
  // Please don't remove the lines below
9266
9266
  // They are used to detect outdated files
9267
- // FastlaneRunnerAPIVersion [0.9.88]
9267
+ // FastlaneRunnerAPIVersion [0.9.89]
@@ -14,4 +14,4 @@ class Gymfile: GymfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.157.0
17
+ // Generated with fastlane 2.157.1
@@ -181,4 +181,4 @@ extension GymfileProtocol {
181
181
 
182
182
  // Please don't remove the lines below
183
183
  // They are used to detect outdated files
184
- // FastlaneRunnerAPIVersion [0.9.38]
184
+ // FastlaneRunnerAPIVersion [0.9.39]
@@ -14,4 +14,4 @@ class Matchfile: MatchfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.157.0
17
+ // Generated with fastlane 2.157.1
@@ -165,4 +165,4 @@ extension MatchfileProtocol {
165
165
 
166
166
  // Please don't remove the lines below
167
167
  // They are used to detect outdated files
168
- // FastlaneRunnerAPIVersion [0.9.32]
168
+ // FastlaneRunnerAPIVersion [0.9.33]
@@ -14,4 +14,4 @@ class Precheckfile: PrecheckfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.157.0
17
+ // Generated with fastlane 2.157.1
@@ -33,4 +33,4 @@ extension PrecheckfileProtocol {
33
33
 
34
34
  // Please don't remove the lines below
35
35
  // They are used to detect outdated files
36
- // FastlaneRunnerAPIVersion [0.9.31]
36
+ // FastlaneRunnerAPIVersion [0.9.32]
@@ -14,4 +14,4 @@ class Scanfile: ScanfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.157.0
17
+ // Generated with fastlane 2.157.1
@@ -257,4 +257,4 @@ extension ScanfileProtocol {
257
257
 
258
258
  // Please don't remove the lines below
259
259
  // They are used to detect outdated files
260
- // FastlaneRunnerAPIVersion [0.9.43]
260
+ // FastlaneRunnerAPIVersion [0.9.44]
@@ -14,4 +14,4 @@ class Screengrabfile: ScreengrabfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.157.0
17
+ // Generated with fastlane 2.157.1
@@ -93,4 +93,4 @@ extension ScreengrabfileProtocol {
93
93
 
94
94
  // Please don't remove the lines below
95
95
  // They are used to detect outdated files
96
- // FastlaneRunnerAPIVersion [0.9.33]
96
+ // FastlaneRunnerAPIVersion [0.9.34]
@@ -14,4 +14,4 @@ class Snapshotfile: SnapshotfileProtocol {
14
14
  // during the `init` process, and you won't see this message
15
15
  }
16
16
 
17
- // Generated with fastlane 2.157.0
17
+ // Generated with fastlane 2.157.1
@@ -181,4 +181,4 @@ extension SnapshotfileProtocol {
181
181
 
182
182
  // Please don't remove the lines below
183
183
  // They are used to detect outdated files
184
- // FastlaneRunnerAPIVersion [0.9.27]
184
+ // FastlaneRunnerAPIVersion [0.9.28]
@@ -52,6 +52,7 @@ module FastlaneCore
52
52
  status = FastlaneCore::FastlanePty.spawn(command) do |command_stdout, command_stdin, pid|
53
53
  command_stdout.each do |l|
54
54
  line = l.chomp
55
+ line = line[1..-1] if line[0] == "\r"
55
56
  output << line
56
57
 
57
58
  next unless print_all
@@ -24,7 +24,8 @@ module Pilot
24
24
  config[:username] ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
25
25
 
26
26
  UI.message("Login to App Store Connect (#{config[:username]})")
27
- Spaceship::ConnectAPI.login(config[:username], team_id: config[:team_id], team_name: config[:team_name])
27
+ Spaceship::ConnectAPI.login(config[:username], use_portal: false, use_tunes: true)
28
+ Spaceship::ConnectAPI.select_team(tunes_team_id: config[:team_id], team_name: config[:team_name])
28
29
  UI.message("Login successful")
29
30
  end
30
31
  end
@@ -9,7 +9,7 @@ module Produce
9
9
  @full_bundle_identifier = app_identifier
10
10
  @full_bundle_identifier.gsub!('*', Produce.config[:bundle_identifier_suffix].to_s) if wildcard_bundle?
11
11
 
12
- Spaceship::ConnectAPI.login(Produce.config[:username], nil)
12
+ Spaceship::ConnectAPI.login(Produce.config[:username], nil, use_portal: false, use_tunes: true)
13
13
  Spaceship::ConnectAPI.client.select_team
14
14
 
15
15
  create_new_app
@@ -82,7 +82,7 @@ module Screengrab
82
82
  end
83
83
 
84
84
  def select_device
85
- adb = Fastlane::Helper::AdbHelper.new(adb_host: @config[:adb_host])
85
+ adb = Fastlane::Helper::AdbHelper.new(adb_path: @android_env.adb_path, adb_host: @config[:adb_host])
86
86
  devices = adb.load_all_devices
87
87
 
88
88
  UI.user_error!('There are no connected and authorized devices or emulators') if devices.empty?
@@ -299,9 +299,17 @@ module Screengrab
299
299
  device_screenshots_paths.each do |device_path|
300
300
  if_device_path_exists(@config[:app_package_name], device_serial, device_path) do |path|
301
301
  next unless path.include?(locale)
302
- run_adb_command("-s #{device_serial} pull #{path} #{tempdir}",
303
- print_all: false,
304
- print_command: true)
302
+ out = run_adb_command("-s #{device_serial} pull #{path} #{tempdir}",
303
+ print_all: false,
304
+ print_command: true,
305
+ raise_errors: false)
306
+ if out =~ /Permission denied/
307
+ dir = File.dirname(path)
308
+ base = File.basename(path)
309
+ run_adb_command("-s #{device_serial} shell run-as #{@config[:app_package_name]} 'tar -cC #{dir} #{base}' | tar -xvC #{tempdir}",
310
+ print_all: false,
311
+ print_command: true)
312
+ end
305
313
  end
306
314
  end
307
315
 
@@ -381,16 +389,26 @@ module Screengrab
381
389
  packages.split("\n").map { |package| package.gsub("package:", "") }
382
390
  end
383
391
 
384
- def run_adb_command(command, print_all: false, print_command: false)
392
+ def run_adb_command(command, print_all: false, print_command: false, raise_errors: true)
385
393
  adb_path = @android_env.adb_path.chomp("adb")
386
394
  adb_host = @config[:adb_host]
387
395
  host = adb_host.nil? ? '' : "-H #{adb_host} "
388
- output = @executor.execute(command: adb_path + "adb " + host + command,
389
- print_all: print_all,
390
- print_command: print_command) || ''
396
+ output = ''
397
+ begin
398
+ errout = nil
399
+ cmdout = @executor.execute(command: adb_path + "adb " + host + command,
400
+ print_all: print_all,
401
+ print_command: print_command,
402
+ error: raise_errors ? nil : proc { |out, status| errout = out }) || ''
403
+ output = errout || cmdout
404
+ rescue => ex
405
+ if raise_errors
406
+ raise ex
407
+ end
408
+ end
391
409
  output.lines.reject do |line|
392
- # Debug/Warning output from ADB}
393
- line.start_with?('adb: ')
410
+ # Debug/Warning output from ADB
411
+ line.start_with?('adb: ') && !line.start_with?('adb: error: ')
394
412
  end.join('') # Lines retain their newline chars
395
413
  end
396
414
 
@@ -18,7 +18,7 @@ module Sigh
18
18
  title: "Summary for sigh #{Fastlane::VERSION}")
19
19
 
20
20
  UI.message("Starting login with user '#{Sigh.config[:username]}'")
21
- Spaceship::ConnectAPI.login(Sigh.config[:username], nil)
21
+ Spaceship::ConnectAPI.login(Sigh.config[:username], nil, use_portal: true, use_tunes: false)
22
22
  Spaceship::ConnectAPI.select_team
23
23
  UI.message("Successfully logged in")
24
24
 
@@ -38,20 +38,25 @@ module Spaceship
38
38
  #
39
39
  # @param user (String) (optional): The username (usually the email address)
40
40
  # @param password (String) (optional): The password
41
- # @param team_id (String) (optional): The team id
41
+ # @param use_portal (Boolean) (optional): Whether to log in to Spaceship::Portal or not
42
+ # @param use_tunes (Boolean) (optional): Whether to log in to Spaceship::Tunes or not
43
+ # @param portal_team_id (String) (optional): The Spaceship::Portal team id
44
+ # @param tunes_team_id (String) (optional): The Spaceship::Tunes team id
42
45
  # @param team_name (String) (optional): The team name
43
46
  #
44
47
  # @raise InvalidUserCredentialsError: raised if authentication failed
45
48
  #
46
49
  # @return (Spaceship::ConnectAPI::Client) The client the login method was called for
47
- def self.login(user = nil, password = nil, team_id: nil, team_name: nil)
48
- tunes_client = TunesClient.login(user, password)
49
- portal_client = PortalClient.login(user, password)
50
+ def self.login(user = nil, password = nil, use_portal: true, use_tunes: true, portal_team_id: nil, tunes_team_id: nil, team_name: nil)
51
+ portal_client = PortalClient.login(user, password) if use_portal
52
+ tunes_client = TunesClient.login(user, password) if use_tunes
50
53
 
51
54
  # The clients will automatically select the first team if none is given
52
- if !team_id.nil? || !team_name.nil?
53
- tunes_client.select_team(team_id: team_id, team_name: team_name)
54
- portal_client.select_team(team_id: team_id, team_name: team_name)
55
+ if portal_client && (!portal_team_id.nil? || !team_name.nil?)
56
+ portal_client.select_team(team_id: portal_team_id, team_name: team_name)
57
+ end
58
+ if tunes_client && (!tunes_team_id.nil? || !team_name.nil?)
59
+ tunes_client.select_team(team_id: tunes_team_id, team_name: team_name)
55
60
  end
56
61
 
57
62
  return ConnectAPI::Client.new(tunes_client: tunes_client, portal_client: portal_client)
@@ -104,9 +109,9 @@ module Spaceship
104
109
  end
105
110
  end
106
111
 
107
- def select_team(team_id: nil, team_name: nil)
108
- @tunes_client.select_team(team_id: team_id, team_name: team_name)
109
- @portal_client.select_team(team_id: team_id, team_name: team_name)
112
+ def select_team(portal_team_id: nil, tunes_team_id: nil, team_name: nil)
113
+ @portal_client.select_team(team_id: portal_team_id, team_name: team_name) unless @portal_client.nil?
114
+ @tunes_client.select_team(team_id: tunes_team_id, team_name: team_name) unless @tunes_client.nil?
110
115
 
111
116
  # Updating the tunes and portal clients requires resetting
112
117
  # of the clients in the API modules
@@ -68,14 +68,17 @@ module Spaceship
68
68
  #
69
69
  # @param user (String) (optional): The username (usually the email address)
70
70
  # @param password (String) (optional): The password
71
- # @param team_id (String) (optional): The team id
71
+ # @param use_portal (Boolean) (optional): Whether to log in to Spaceship::Portal or not
72
+ # @param use_tunes (Boolean) (optional): Whether to log in to Spaceship::Tunes or not
73
+ # @param portal_team_id (String) (optional): The Spaceship::Portal team id
74
+ # @param tunes_team_id (String) (optional): The Spaceship::Tunes team id
72
75
  # @param team_name (String) (optional): The team name
73
76
  #
74
77
  # @raise InvalidUserCredentialsError: raised if authentication failed
75
78
  #
76
79
  # @return (Spaceship::ConnectAPI::Client) The client the login method was called for
77
- def login(user = nil, password = nil, team_id: nil, team_name: nil)
78
- @client = ConnectAPI::Client.login(user, password, team_id: team_id, team_name: team_name)
80
+ def login(user = nil, password = nil, use_portal: true, use_tunes: true, portal_team_id: nil, tunes_team_id: nil, team_name: nil)
81
+ @client = ConnectAPI::Client.login(user, password, use_portal: use_portal, use_tunes: use_tunes, portal_team_id: portal_team_id, tunes_team_id: tunes_team_id, team_name: team_name)
79
82
  end
80
83
 
81
84
  # Open up the team selection for the user (if necessary).
@@ -83,11 +86,12 @@ module Spaceship
83
86
  # If the user is in multiple teams, a team selection is shown.
84
87
  # The user can then select a team by entering the number
85
88
  #
86
- # @param team_id (String) (optional): The ID of an App Store Connect team
89
+ # @param portal_team_id (String) (optional): The Spaceship::Portal team id
90
+ # @param tunes_team_id (String) (optional): The Spaceship::Tunes team id
87
91
  # @param team_name (String) (optional): The name of an App Store Connect team
88
- def select_team(team_id: nil, team_name: nil)
92
+ def select_team(portal_team_id: nil, tunes_team_id: nil, team_name: nil)
89
93
  return if client.nil?
90
- client.select_team(team_id: team_id, team_name: team_name)
94
+ client.select_team(portal_team_id: portal_team_id, tunes_team_id: tunes_team_id, team_name: team_name)
91
95
  end
92
96
  end
93
97
  end
metadata CHANGED
@@ -1,35 +1,35 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.157.0
4
+ version: 2.157.1
5
5
  platform: ruby
6
6
  authors:
7
+ - Andrew McBurney
8
+ - Matthew Ellis
9
+ - Joshua Liebowitz
7
10
  - Josh Holtz
8
- - Daniel Jankowski
9
- - Jimmy Dee
10
- - Olivier Halligon
11
+ - Maksym Grebenets
12
+ - Kohki Miki
13
+ - Jan Piotrowski
14
+ - Aaron Brager
11
15
  - Jorge Revuelta H
12
16
  - Helmut Januschka
13
17
  - Jérôme Lacoste
14
18
  - Felix Krause
15
- - Iulian Onofrei
16
- - Matthew Ellis
17
- - Aaron Brager
18
- - Danielle Tomlinson
19
- - Manu Wallner
20
- - Andrew McBurney
21
- - Max Ott
22
19
  - Luka Mirosevic
23
- - Maksym Grebenets
24
- - Kohki Miki
25
- - Jan Piotrowski
20
+ - Danielle Tomlinson
21
+ - Jimmy Dee
26
22
  - Stefan Natchev
27
- - Joshua Liebowitz
23
+ - Daniel Jankowski
24
+ - Olivier Halligon
25
+ - Iulian Onofrei
26
+ - Max Ott
27
+ - Manu Wallner
28
28
  - Fumiya Nakamura
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2020-08-27 00:00:00.000000000 Z
32
+ date: 2020-08-28 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier