fastlane 2.177.0 → 2.178.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -80
  3. data/cert/lib/cert/runner.rb +1 -1
  4. data/deliver/lib/deliver/runner.rb +6 -2
  5. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
  6. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +4 -1
  7. data/fastlane/lib/fastlane/actions/backup_file.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/commit_github_file.rb +11 -1
  9. data/fastlane/lib/fastlane/actions/create_xcframework.rb +5 -0
  10. data/fastlane/lib/fastlane/actions/get_github_release.rb +11 -1
  11. data/fastlane/lib/fastlane/actions/github_api.rb +2 -1
  12. data/fastlane/lib/fastlane/actions/increment_build_number.rb +8 -1
  13. data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
  14. data/fastlane/lib/fastlane/actions/register_devices.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/restore_file.rb +1 -1
  16. data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
  17. data/fastlane/lib/fastlane/erb_template_helper.rb +7 -1
  18. data/fastlane/lib/fastlane/fast_file.rb +9 -5
  19. data/fastlane/lib/fastlane/version.rb +1 -1
  20. data/fastlane/swift/Deliverfile.swift +1 -1
  21. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  22. data/fastlane/swift/Fastlane.swift +20 -11
  23. data/fastlane/swift/Gymfile.swift +1 -1
  24. data/fastlane/swift/GymfileProtocol.swift +1 -1
  25. data/fastlane/swift/Matchfile.swift +1 -1
  26. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  27. data/fastlane/swift/Precheckfile.swift +1 -1
  28. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  29. data/fastlane/swift/Scanfile.swift +1 -1
  30. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  31. data/fastlane/swift/Screengrabfile.swift +1 -1
  32. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  33. data/fastlane/swift/Snapshotfile.swift +1 -1
  34. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  35. data/fastlane/swift/formatting/Brewfile.lock.json +3 -3
  36. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +10 -6
  37. data/fastlane_core/lib/fastlane_core/project.rb +3 -14
  38. data/fastlane_core/lib/fastlane_core/ui/interface.rb +1 -1
  39. data/match/lib/match/importer.rb +1 -1
  40. data/match/lib/match/migrate.rb +1 -1
  41. data/match/lib/match/nuke.rb +1 -1
  42. data/match/lib/match/runner.rb +1 -1
  43. data/match/lib/match/storage/google_cloud_storage.rb +1 -1
  44. data/match/lib/match/storage/s3_storage.rb +1 -1
  45. data/pilot/lib/pilot/build_manager.rb +9 -4
  46. data/pilot/lib/pilot/manager.rb +1 -1
  47. data/pilot/lib/pilot/options.rb +2 -2
  48. data/precheck/lib/precheck/runner.rb +1 -1
  49. data/sigh/lib/sigh/download_all.rb +1 -1
  50. data/sigh/lib/sigh/runner.rb +1 -1
  51. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +5 -0
  52. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +13 -0
  53. data/spaceship/lib/spaceship/connect_api/token.rb +1 -1
  54. metadata +21 -21
@@ -24,7 +24,13 @@ module Fastlane
24
24
  end
25
25
 
26
26
  def render(template)
27
- ERB.new(template, nil, @trim_mode).result(binding)
27
+ # From Ruby 2.6, ERB.new takes keyword arguments and positional ones are deprecated
28
+ # https://bugs.ruby-lang.org/issues/14256
29
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.6.0")
30
+ ERB.new(template, trim_mode: @trim_mode).result(binding)
31
+ else
32
+ ERB.new(template, nil, @trim_mode).result(binding)
33
+ end
28
34
  end
29
35
  end
30
36
  end
@@ -201,13 +201,17 @@ module Fastlane
201
201
  # First accepts hash (or named keywords) like other actions
202
202
  # Otherwise uses sh method that doesn't have an interface like an action
203
203
  if args.count == 1 && args.first.kind_of?(Hash)
204
- hash = args.first
205
- command = hash.delete(:command)
204
+ options = args.first
205
+ command = options.delete(:command)
206
206
 
207
207
  raise ArgumentError, "sh requires :command keyword in argument" if command.nil?
208
-
209
- new_args = [*command, hash]
210
- FastFile.sh(*new_args, &b)
208
+ log = options[:log].nil? ? true : options[:log]
209
+ FastFile.sh(*command, step_name: options[:step_name], log: log, error_callback: options[:error_callback], &b)
210
+ elsif args.count != 1 && args.last.kind_of?(Hash)
211
+ new_args = args.dup
212
+ options = new_args.pop
213
+ log = options[:log].nil? ? true : options[:log]
214
+ FastFile.sh(*new_args, step_name: options[:step_name], log: log, error_callback: options[:error_callback], &b)
211
215
  else
212
216
  FastFile.sh(*args, &b)
213
217
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.177.0'.freeze
2
+ VERSION = '2.178.0'.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
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.177.0
20
+ // Generated with fastlane 2.178.0
@@ -256,4 +256,4 @@ public extension DeliverfileProtocol {
256
256
 
257
257
  // Please don't remove the lines below
258
258
  // They are used to detect outdated files
259
- // FastlaneRunnerAPIVersion [0.9.60]
259
+ // FastlaneRunnerAPIVersion [0.9.61]
@@ -2250,6 +2250,7 @@ public func cocoapods(repoUpdate: Bool = false,
2250
2250
  - repositoryName: The path to your repo, e.g. 'fastlane/fastlane'
2251
2251
  - serverUrl: The server url. e.g. 'https://your.internal.github.host/api/v3' (Default: 'https://api.github.com')
2252
2252
  - apiToken: Personal API Token for GitHub - generate one at https://github.com/settings/tokens
2253
+ - apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
2253
2254
  - branch: The branch that the file should be committed on (default: master)
2254
2255
  - path: The relative path to your file from project root e.g. assets/my_app.xcarchive
2255
2256
  - message: The commit message. Defaults to the file name
@@ -2264,7 +2265,8 @@ public func cocoapods(repoUpdate: Bool = false,
2264
2265
  */
2265
2266
  @discardableResult public func commitGithubFile(repositoryName: String,
2266
2267
  serverUrl: String = "https://api.github.com",
2267
- apiToken: String,
2268
+ apiToken: String? = nil,
2269
+ apiBearer: String? = nil,
2268
2270
  branch: String = "master",
2269
2271
  path: String,
2270
2272
  message: String? = nil,
@@ -2273,6 +2275,7 @@ public func cocoapods(repoUpdate: Bool = false,
2273
2275
  let command = RubyCommand(commandID: "", methodName: "commit_github_file", className: nil, args: [RubyCommand.Argument(name: "repository_name", value: repositoryName),
2274
2276
  RubyCommand.Argument(name: "server_url", value: serverUrl),
2275
2277
  RubyCommand.Argument(name: "api_token", value: apiToken),
2278
+ RubyCommand.Argument(name: "api_bearer", value: apiBearer),
2276
2279
  RubyCommand.Argument(name: "branch", value: branch),
2277
2280
  RubyCommand.Argument(name: "path", value: path),
2278
2281
  RubyCommand.Argument(name: "message", value: message),
@@ -3537,6 +3540,7 @@ public func getCertificates(development: Bool = false,
3537
3540
  - serverUrl: The server url. e.g. 'https://your.github.server/api/v3' (Default: 'https://api.github.com')
3538
3541
  - version: The version tag of the release to check
3539
3542
  - apiToken: GitHub Personal Token (required for private repositories)
3543
+ - apiBearer: Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable
3540
3544
 
3541
3545
  This will return all information about a release. For example:|
3542
3546
  |
@@ -3584,12 +3588,14 @@ public func getCertificates(development: Bool = false,
3584
3588
  public func getGithubRelease(url: String,
3585
3589
  serverUrl: String = "https://api.github.com",
3586
3590
  version: String,
3587
- apiToken: String? = nil)
3591
+ apiToken: String? = nil,
3592
+ apiBearer: String? = nil)
3588
3593
  {
3589
3594
  let command = RubyCommand(commandID: "", methodName: "get_github_release", className: nil, args: [RubyCommand.Argument(name: "url", value: url),
3590
3595
  RubyCommand.Argument(name: "server_url", value: serverUrl),
3591
3596
  RubyCommand.Argument(name: "version", value: version),
3592
- RubyCommand.Argument(name: "api_token", value: apiToken)])
3597
+ RubyCommand.Argument(name: "api_token", value: apiToken),
3598
+ RubyCommand.Argument(name: "api_bearer", value: apiBearer)])
3593
3599
  _ = runner.executeCommand(command)
3594
3600
  }
3595
3601
 
@@ -4511,14 +4517,17 @@ public func importCertificate(certificatePath: String,
4511
4517
 
4512
4518
  - parameters:
4513
4519
  - buildNumber: Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled
4520
+ - skipInfoPlist: Don't update Info.plist files when updating the build version
4514
4521
  - xcodeproj: optional, you must specify the path to your main Xcode project if it is not in the project root directory
4515
4522
 
4516
4523
  - returns: The new build number
4517
4524
  */
4518
4525
  @discardableResult public func incrementBuildNumber(buildNumber: Any? = nil,
4526
+ skipInfoPlist: Bool = false,
4519
4527
  xcodeproj: String? = nil) -> String
4520
4528
  {
4521
4529
  let command = RubyCommand(commandID: "", methodName: "increment_build_number", className: nil, args: [RubyCommand.Argument(name: "build_number", value: buildNumber),
4530
+ RubyCommand.Argument(name: "skip_info_plist", value: skipInfoPlist),
4522
4531
  RubyCommand.Argument(name: "xcodeproj", value: xcodeproj)])
4523
4532
  return runner.executeCommand(command)
4524
4533
  }
@@ -5438,7 +5447,7 @@ public func pem(development: Bool = false,
5438
5447
  - distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
5439
5448
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
5440
5449
  - distributeExternal: Should the build be distributed to external testers?
5441
- - notifyExternalTesters: Should notify external testers?
5450
+ - notifyExternalTesters: Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)
5442
5451
  - appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
5443
5452
  - buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
5444
5453
  - expirePreviousBuilds: Should expire previous builds?
@@ -5478,7 +5487,7 @@ public func pilot(apiKeyPath: String? = nil,
5478
5487
  distributeOnly: Bool = false,
5479
5488
  usesNonExemptEncryption: Bool = false,
5480
5489
  distributeExternal: Bool = false,
5481
- notifyExternalTesters: Bool = true,
5490
+ notifyExternalTesters: Any? = nil,
5482
5491
  appVersion: String? = nil,
5483
5492
  buildNumber: String? = nil,
5484
5493
  expirePreviousBuilds: Bool = false,
@@ -8127,7 +8136,7 @@ public func testfairy(apiKey: String,
8127
8136
  - distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
8128
8137
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
8129
8138
  - distributeExternal: Should the build be distributed to external testers?
8130
- - notifyExternalTesters: Should notify external testers?
8139
+ - notifyExternalTesters: Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)
8131
8140
  - appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
8132
8141
  - buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
8133
8142
  - expirePreviousBuilds: Should expire previous builds?
@@ -8167,7 +8176,7 @@ public func testflight(apiKeyPath: String? = nil,
8167
8176
  distributeOnly: Bool = false,
8168
8177
  usesNonExemptEncryption: Bool = false,
8169
8178
  distributeExternal: Bool = false,
8170
- notifyExternalTesters: Bool = true,
8179
+ notifyExternalTesters: Any? = nil,
8171
8180
  appVersion: String? = nil,
8172
8181
  buildNumber: String? = nil,
8173
8182
  expirePreviousBuilds: Bool = false,
@@ -9120,7 +9129,7 @@ public func uploadToPlayStoreInternalAppSharing(packageName: String,
9120
9129
  - distributeOnly: Distribute a previously uploaded build (equivalent to the `fastlane pilot distribute` command)
9121
9130
  - usesNonExemptEncryption: Provide the 'Uses Non-Exempt Encryption' for export compliance. This is used if there is 'ITSAppUsesNonExemptEncryption' is not set in the Info.plist
9122
9131
  - distributeExternal: Should the build be distributed to external testers?
9123
- - notifyExternalTesters: Should notify external testers?
9132
+ - notifyExternalTesters: Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)
9124
9133
  - appVersion: The version number of the application build to distribute. If the version number is not specified, then the most recent build uploaded to TestFlight will be distributed. If specified, the most recent build for the version number will be distributed
9125
9134
  - buildNumber: The build number of the application build to distribute. If the build number is not specified, the most recent build is distributed
9126
9135
  - expirePreviousBuilds: Should expire previous builds?
@@ -9160,7 +9169,7 @@ public func uploadToTestflight(apiKeyPath: String? = nil,
9160
9169
  distributeOnly: Bool = false,
9161
9170
  usesNonExemptEncryption: Bool = false,
9162
9171
  distributeExternal: Bool = false,
9163
- notifyExternalTesters: Bool = true,
9172
+ notifyExternalTesters: Any? = nil,
9164
9173
  appVersion: String? = nil,
9165
9174
  buildNumber: String? = nil,
9166
9175
  expirePreviousBuilds: Bool = false,
@@ -9519,7 +9528,7 @@ public func xcov(workspace: String? = nil,
9519
9528
  coverallsServiceJobId: String? = nil,
9520
9529
  coverallsRepoToken: String? = nil,
9521
9530
  xcconfig: String? = nil,
9522
- ideFoundationPath: String = "/Applications/Xcode-12.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9531
+ ideFoundationPath: String = "/Applications/Xcode-12.2.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
9523
9532
  legacySupport: Bool = false)
9524
9533
  {
9525
9534
  let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
@@ -9665,4 +9674,4 @@ public let snapshotfile = Snapshotfile()
9665
9674
 
9666
9675
  // Please don't remove the lines below
9667
9676
  // They are used to detect outdated files
9668
- // FastlaneRunnerAPIVersion [0.9.113]
9677
+ // FastlaneRunnerAPIVersion [0.9.114]
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.177.0
20
+ // Generated with fastlane 2.178.0
@@ -196,4 +196,4 @@ public extension GymfileProtocol {
196
196
 
197
197
  // Please don't remove the lines below
198
198
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.63]
199
+ // FastlaneRunnerAPIVersion [0.9.64]
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.177.0
20
+ // Generated with fastlane 2.178.0
@@ -184,4 +184,4 @@ public extension MatchfileProtocol {
184
184
 
185
185
  // Please don't remove the lines below
186
186
  // They are used to detect outdated files
187
- // FastlaneRunnerAPIVersion [0.9.57]
187
+ // FastlaneRunnerAPIVersion [0.9.58]
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.177.0
20
+ // Generated with fastlane 2.178.0
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
52
52
 
53
53
  // Please don't remove the lines below
54
54
  // They are used to detect outdated files
55
- // FastlaneRunnerAPIVersion [0.9.56]
55
+ // FastlaneRunnerAPIVersion [0.9.57]
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.177.0
20
+ // Generated with fastlane 2.178.0
@@ -288,4 +288,4 @@ public extension ScanfileProtocol {
288
288
 
289
289
  // Please don't remove the lines below
290
290
  // They are used to detect outdated files
291
- // FastlaneRunnerAPIVersion [0.9.68]
291
+ // FastlaneRunnerAPIVersion [0.9.69]
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.177.0
20
+ // Generated with fastlane 2.178.0
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
96
96
 
97
97
  // Please don't remove the lines below
98
98
  // They are used to detect outdated files
99
- // FastlaneRunnerAPIVersion [0.9.58]
99
+ // FastlaneRunnerAPIVersion [0.9.59]
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
17
17
  // during the `init` process, and you won't see this message
18
18
  }
19
19
 
20
- // Generated with fastlane 2.177.0
20
+ // Generated with fastlane 2.178.0
@@ -196,4 +196,4 @@ public extension SnapshotfileProtocol {
196
196
 
197
197
  // Please don't remove the lines below
198
198
  // They are used to detect outdated files
199
- // FastlaneRunnerAPIVersion [0.9.52]
199
+ // FastlaneRunnerAPIVersion [0.9.53]
@@ -33,11 +33,11 @@
33
33
  "system": {
34
34
  "macos": {
35
35
  "catalina": {
36
- "HOMEBREW_VERSION": "3.0.4-52-gbc37074",
36
+ "HOMEBREW_VERSION": "3.0.4-64-g31a4989",
37
37
  "HOMEBREW_PREFIX": "/usr/local",
38
- "Homebrew/homebrew-core": "6de8c1455224f0c7949aa103a6cf5721a7dcdde5",
38
+ "Homebrew/homebrew-core": "443ddf805144323198a5b37b071516534243377b",
39
39
  "CLT": "11.0.33.12",
40
- "Xcode": "12.4",
40
+ "Xcode": "12.2",
41
41
  "macOS": "10.15.7"
42
42
  },
43
43
  "big_sur": {
@@ -94,6 +94,10 @@ module FastlaneCore
94
94
  return exit_status.zero?
95
95
  end
96
96
 
97
+ def displayable_errors
98
+ @errors.map { |error| "[Transporter Error Output]: #{error}" }.join("\n").gsub!(/"/, "")
99
+ end
100
+
97
101
  private
98
102
 
99
103
  def parse_line(line, hide_output)
@@ -107,7 +111,6 @@ module FastlaneCore
107
111
 
108
112
  elsif line =~ ERROR_REGEX
109
113
  @errors << $1
110
- UI.error("[Transporter Error Output]: #{$1}")
111
114
 
112
115
  # Check if it's a login error
113
116
  if $1.include?("Your Apple ID or password was entered incorrectly") ||
@@ -117,9 +120,6 @@ module FastlaneCore
117
120
  CredentialsManager::AccountManager.new(user: @user).invalid_credentials
118
121
  UI.error("Please run this tool again to apply the new password")
119
122
  end
120
- elsif $1.include?("Redundant Binary Upload. There already exists a binary upload with build")
121
- UI.error($1)
122
- UI.error("You have to change the build number of your app to upload your ipa file")
123
123
  end
124
124
 
125
125
  output_done = true
@@ -492,7 +492,7 @@ module FastlaneCore
492
492
  result = @transporter_executor.execute(command, ItunesTransporter.hide_transporter_output?)
493
493
  rescue TransporterRequiresApplicationSpecificPasswordError => ex
494
494
  handle_two_step_failure(ex)
495
- return upload(app_id, dir)
495
+ return upload(app_id, dir, package_path: package_path)
496
496
  end
497
497
 
498
498
  if result
@@ -503,7 +503,11 @@ module FastlaneCore
503
503
  handle_error(@password)
504
504
  end
505
505
 
506
- result
506
+ return result
507
+ end
508
+
509
+ def displayable_errors
510
+ @transporter_executor.displayable_errors
507
511
  end
508
512
 
509
513
  def provider_ids
@@ -68,22 +68,13 @@ module FastlaneCore
68
68
  # Is this project a workspace?
69
69
  attr_accessor :is_workspace
70
70
 
71
- # Should the output of xcodebuild commands be silenced?
72
- attr_accessor :xcodebuild_list_silent
73
-
74
- # Should we redirect stderr to /dev/null for xcodebuild commands?
75
- # Gets rid of annoying plugin info warnings.
76
- attr_accessor :xcodebuild_suppress_stderr
77
-
78
71
  # @param options [FastlaneCore::Configuration|Hash] a set of configuration to run xcodebuild to work out build settings
79
72
  # @param xcodebuild_list_silent [Boolean] a flag to silent xcodebuild command's output
80
73
  # @param xcodebuild_suppress_stderr [Boolean] a flag to supress output to stderr from xcodebuild
81
- def initialize(options, xcodebuild_list_silent: false, xcodebuild_suppress_stderr: false)
74
+ def initialize(options)
82
75
  @options = options
83
76
  @path = File.expand_path(self.options[:workspace] || self.options[:project])
84
77
  @is_workspace = (self.options[:workspace].to_s.length > 0)
85
- @xcodebuild_list_silent = xcodebuild_list_silent
86
- @xcodebuild_suppress_stderr = xcodebuild_suppress_stderr
87
78
 
88
79
  if !path || !File.directory?(path)
89
80
  UI.user_error!("Could not find project at path '#{path}'")
@@ -365,14 +356,12 @@ module FastlaneCore
365
356
  else
366
357
  command = "xcodebuild clean -showBuildSettings #{xcodebuild_parameters.join(' ')}"
367
358
  end
368
- command += " 2> /dev/null" if xcodebuild_suppress_stderr
369
359
  command
370
360
  end
371
361
 
372
362
  def build_xcodebuild_resolvepackagedependencies_command
373
363
  return nil if options[:skip_package_dependencies_resolution]
374
364
  command = "xcodebuild -resolvePackageDependencies #{xcodebuild_parameters.join(' ')}"
375
- command += " 2> /dev/null" if xcodebuild_suppress_stderr
376
365
  command
377
366
  end
378
367
 
@@ -395,7 +384,7 @@ module FastlaneCore
395
384
  FastlaneCore::CommandExecutor.execute(
396
385
  command: command,
397
386
  print_all: true,
398
- print_command: !self.xcodebuild_list_silent
387
+ print_command: true
399
388
  )
400
389
  else
401
390
  UI.important("Skipped Swift Package Manager dependencies resolution.")
@@ -408,7 +397,7 @@ module FastlaneCore
408
397
  begin
409
398
  timeout = FastlaneCore::Project.xcode_build_settings_timeout
410
399
  retries = FastlaneCore::Project.xcode_build_settings_retries
411
- @build_settings = FastlaneCore::Project.run_command(command, timeout: timeout, retries: retries, print: !self.xcodebuild_list_silent)
400
+ @build_settings = FastlaneCore::Project.run_command(command, timeout: timeout, retries: retries, print: true)
412
401
  if @build_settings.empty?
413
402
  UI.error("Could not read build settings. Make sure that the scheme \"#{options[:scheme]}\" is configured for running by going to Product → Scheme → Edit Scheme…, selecting the \"Build\" section, checking the \"Run\" checkbox and closing the scheme window.")
414
403
  end
@@ -138,7 +138,7 @@ module FastlaneCore
138
138
  # Basically this should be used when you actively catch the error
139
139
  # and want to show a nice error message to the user
140
140
  def user_error!(error_message, options = {})
141
- raise FastlaneError.new(options), error_message.to_s
141
+ raise FastlaneError.new(show_github_issues: options[:show_github_issues], error_info: options[:error_info]), error_message.to_s
142
142
  end
143
143
 
144
144
  # Use this method to exit the program because of a shell command
@@ -149,7 +149,7 @@ module Match
149
149
  end
150
150
 
151
151
  def api_token(params)
152
- @api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
152
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
153
153
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
154
154
  return @api_token
155
155
  end
@@ -91,7 +91,7 @@ module Match
91
91
  end
92
92
 
93
93
  def api_token(params)
94
- @api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
94
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
95
95
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
96
96
  return @api_token
97
97
  end
@@ -121,7 +121,7 @@ module Match
121
121
  end
122
122
 
123
123
  def api_token
124
- @api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
124
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
125
125
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
126
126
  return @api_token
127
127
  end
@@ -139,7 +139,7 @@ module Match
139
139
  # rubocop:enable Metrics/PerceivedComplexity
140
140
 
141
141
  def api_token(params)
142
- @api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
142
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
143
143
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
144
144
  return @api_token
145
145
  end