fastlane 2.157.0 → 2.157.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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