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
@@ -123,7 +123,7 @@ module Match
123
123
  end
124
124
 
125
125
  def api_token
126
- api_token ||= Spaceship::ConnectAPI::Token.create(self.api_key) if self.api_key
126
+ api_token ||= Spaceship::ConnectAPI::Token.create(**self.api_key) if self.api_key
127
127
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(self.api_key_path) if self.api_key_path
128
128
  return api_token
129
129
  end
@@ -196,7 +196,7 @@ module Match
196
196
  end
197
197
 
198
198
  def api_token
199
- api_token ||= Spaceship::ConnectAPI::Token.create(self.api_key) if self.api_key
199
+ api_token ||= Spaceship::ConnectAPI::Token.create(**self.api_key) if self.api_key
200
200
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(self.api_key_path) if self.api_key_path
201
201
  return api_token
202
202
  end
@@ -34,7 +34,8 @@ module Pilot
34
34
  result = transporter.upload(package_path: package_path)
35
35
 
36
36
  unless result
37
- UI.user_error!("Error uploading ipa file, for more information see above")
37
+ transporter_errors = transporter.displayable_errors
38
+ UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
38
39
  end
39
40
 
40
41
  UI.success("Successfully uploaded the new binary to App Store Connect")
@@ -253,9 +254,13 @@ module Pilot
253
254
  end
254
255
  end
255
256
 
256
- update_build_beta_details(build, {
257
- auto_notify_enabled: options[:notify_external_testers]
258
- })
257
+ if options[:notify_external_testers].nil?
258
+ UI.important("Using App Store Connect's default for notifying external testers (which is true) - set `notify_external_testers` for full control")
259
+ else
260
+ update_build_beta_details(build, {
261
+ auto_notify_enabled: options[:notify_external_testers]
262
+ })
263
+ end
259
264
  end
260
265
 
261
266
  def self.truncate_changelog(changelog)
@@ -30,7 +30,7 @@ module Pilot
30
30
  end
31
31
 
32
32
  def api_token
33
- @api_token ||= Spaceship::ConnectAPI::Token.create(config[:api_key]) if config[:api_key]
33
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**config[:api_key]) if config[:api_key]
34
34
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(config[:api_key_path]) if config[:api_key_path]
35
35
  return @api_token
36
36
  end
@@ -182,8 +182,8 @@ module Pilot
182
182
  FastlaneCore::ConfigItem.new(key: :notify_external_testers,
183
183
  is_string: false,
184
184
  env_name: "PILOT_NOTIFY_EXTERNAL_TESTERS",
185
- description: "Should notify external testers?",
186
- default_value: true),
185
+ description: "Should notify external testers? (Not setting a value will use App Store Connect's default which is to notify)",
186
+ optional: true),
187
187
  FastlaneCore::ConfigItem.new(key: :app_version,
188
188
  env_name: "PILOT_APP_VERSION",
189
189
  description: "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",
@@ -72,7 +72,7 @@ module Precheck
72
72
  end
73
73
 
74
74
  def api_token
75
- @api_token ||= Spaceship::ConnectAPI::Token.create(Precheck.config[:api_key]) if Precheck.config[:api_key]
75
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**Precheck.config[:api_key]) if Precheck.config[:api_key]
76
76
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Precheck.config[:api_key_path]) if Precheck.config[:api_key_path]
77
77
  return @api_token
78
78
  end
@@ -60,7 +60,7 @@ module Sigh
60
60
  end
61
61
 
62
62
  def api_token
63
- api_token ||= Spaceship::ConnectAPI::Token.create(Sigh.config[:api_key]) if Sigh.config[:api_key]
63
+ api_token ||= Spaceship::ConnectAPI::Token.create(**Sigh.config[:api_key]) if Sigh.config[:api_key]
64
64
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Sigh.config[:api_key_path]) if Sigh.config[:api_key_path]
65
65
  return api_token
66
66
  end
@@ -60,7 +60,7 @@ module Sigh
60
60
  end
61
61
 
62
62
  def api_token
63
- @api_token ||= Spaceship::ConnectAPI::Token.create(Sigh.config[:api_key]) if Sigh.config[:api_key]
63
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**Sigh.config[:api_key]) if Sigh.config[:api_key]
64
64
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Sigh.config[:api_key_path]) if Sigh.config[:api_key_path]
65
65
  return @api_token
66
66
  end
@@ -38,6 +38,11 @@ module Spaceship
38
38
  return client.post_bulk_beta_tester_assignments(beta_group_id: id, beta_testers: beta_testers)
39
39
  end
40
40
 
41
+ def add_beta_testers(client: nil, beta_tester_ids:)
42
+ client ||= Spaceship::ConnectAPI
43
+ return client.add_beta_tester_to_group(beta_group_id: id, beta_tester_ids: beta_tester_ids)
44
+ end
45
+
41
46
  def update(client: nil, attributes: nil)
42
47
  return if attributes.empty?
43
48
 
@@ -275,6 +275,19 @@ module Spaceship
275
275
  test_flight_request_client.post("bulkBetaTesterAssignments", body)
276
276
  end
277
277
 
278
+ def add_beta_tester_to_group(beta_group_id: nil, beta_tester_ids: nil)
279
+ beta_tester_ids || []
280
+ body = {
281
+ data: beta_tester_ids.map do |id|
282
+ {
283
+ type: "betaTesters",
284
+ id: id
285
+ }
286
+ end
287
+ }
288
+ test_flight_request_client.post("betaGroups/#{beta_group_id}/relationships/betaTesters", body)
289
+ end
290
+
278
291
  def delete_beta_tester_from_apps(beta_tester_id: nil, app_ids: [])
279
292
  body = {
280
293
  data: app_ids.map do |id|
@@ -37,7 +37,7 @@ module Spaceship
37
37
  raise "App Store Connect API key JSON is missing field(s): #{missing_keys.join(', ')}"
38
38
  end
39
39
 
40
- self.create(json)
40
+ self.create(**json)
41
41
  end
42
42
 
43
43
  def self.create(key_id: nil, issuer_id: nil, filepath: nil, key: nil, is_key_content_base64: false, duration: nil, in_house: nil, **)
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.177.0
4
+ version: 2.178.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Joshua Liebowitz
8
+ - Jorge Revuelta H
9
+ - Iulian Onofrei
7
10
  - Kohki Miki
8
- - Jan Piotrowski
9
- - Jimmy Dee
10
- - Andrew McBurney
11
+ - Fumiya Nakamura
12
+ - Manu Wallner
13
+ - Stefan Natchev
14
+ - Olivier Halligon
11
15
  - Daniel Jankowski
12
- - Luka Mirosevic
13
- - Iulian Onofrei
14
16
  - Helmut Januschka
17
+ - Jan Piotrowski
18
+ - Felix Krause
19
+ - Jimmy Dee
15
20
  - Maksym Grebenets
16
- - Matthew Ellis
21
+ - Andrew McBurney
17
22
  - Max Ott
18
- - Danielle Tomlinson
23
+ - Matthew Ellis
19
24
  - Aaron Brager
20
- - Josh Holtz
21
- - Fumiya Nakamura
22
- - Olivier Halligon
23
25
  - Jérôme Lacoste
24
- - Joshua Liebowitz
25
- - Stefan Natchev
26
- - Felix Krause
27
- - Jorge Revuelta H
28
- - Manu Wallner
26
+ - Luka Mirosevic
27
+ - Danielle Tomlinson
28
+ - Josh Holtz
29
29
  autorequire:
30
30
  bindir: bin
31
31
  cert_chain: []
32
- date: 2021-03-08 00:00:00.000000000 Z
32
+ date: 2021-03-12 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: slack-notifier
@@ -707,14 +707,14 @@ dependencies:
707
707
  requirements:
708
708
  - - "~>"
709
709
  - !ruby/object:Gem::Version
710
- version: 3.10.0
710
+ version: '3.10'
711
711
  type: :development
712
712
  prerelease: false
713
713
  version_requirements: !ruby/object:Gem::Requirement
714
714
  requirements:
715
715
  - - "~>"
716
716
  - !ruby/object:Gem::Version
717
- version: 3.10.0
717
+ version: '3.10'
718
718
  - !ruby/object:Gem::Dependency
719
719
  name: rspec_junit_formatter
720
720
  requirement: !ruby/object:Gem::Requirement
@@ -889,14 +889,14 @@ dependencies:
889
889
  requirements:
890
890
  - - "~>"
891
891
  - !ruby/object:Gem::Version
892
- version: 1.2.1
892
+ version: '1.2'
893
893
  type: :development
894
894
  prerelease: false
895
895
  version_requirements: !ruby/object:Gem::Requirement
896
896
  requirements:
897
897
  - - "~>"
898
898
  - !ruby/object:Gem::Version
899
- version: 1.2.1
899
+ version: '1.2'
900
900
  - !ruby/object:Gem::Dependency
901
901
  name: sinatra
902
902
  requirement: !ruby/object:Gem::Requirement