fastlane 2.219.0 → 2.221.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +86 -86
  3. data/bin/console +11 -0
  4. data/bin/match_file +60 -0
  5. data/deliver/lib/deliver/download_screenshots.rb +2 -1
  6. data/deliver/lib/deliver/generate_summary.rb +1 -1
  7. data/deliver/lib/deliver/options.rb +14 -0
  8. data/deliver/lib/deliver/runner.rb +4 -4
  9. data/deliver/lib/deliver/submit_for_review.rb +2 -2
  10. data/deliver/lib/deliver/upload_metadata.rb +43 -28
  11. data/deliver/lib/deliver/upload_screenshots.rb +15 -8
  12. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +2 -1
  13. data/fastlane/lib/fastlane/actions/appetize.rb +4 -0
  14. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +6 -2
  15. data/fastlane/lib/fastlane/actions/git_add.rb +17 -2
  16. data/fastlane/lib/fastlane/actions/mailgun.rb +30 -8
  17. data/fastlane/lib/fastlane/actions/onesignal.rb +14 -2
  18. data/fastlane/lib/fastlane/actions/spm.rb +7 -0
  19. data/fastlane/lib/fastlane/actions/update_project_provisioning.rb +2 -1
  20. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +4 -2
  21. data/fastlane/lib/fastlane/commands_generator.rb +9 -0
  22. data/fastlane/lib/fastlane/console.rb +24 -0
  23. data/fastlane/lib/fastlane/helper/sh_helper.rb +1 -1
  24. data/fastlane/lib/fastlane/lane_manager_base.rb +16 -8
  25. data/fastlane/lib/fastlane/plugins/plugin_fetcher.rb +2 -1
  26. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +2 -1
  27. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +2 -1
  28. data/fastlane/lib/fastlane/runner.rb +2 -2
  29. data/fastlane/lib/fastlane/version.rb +2 -1
  30. data/fastlane/swift/Deliverfile.swift +1 -1
  31. data/fastlane/swift/DeliverfileProtocol.swift +9 -1
  32. data/fastlane/swift/Fastlane.swift +48 -11
  33. data/fastlane/swift/Gymfile.swift +1 -1
  34. data/fastlane/swift/GymfileProtocol.swift +1 -1
  35. data/fastlane/swift/LaneFileProtocol.swift +1 -1
  36. data/fastlane/swift/Matchfile.swift +1 -1
  37. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  38. data/fastlane/swift/OptionalConfigValue.swift +2 -2
  39. data/fastlane/swift/Precheckfile.swift +1 -1
  40. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  41. data/fastlane/swift/Scanfile.swift +1 -1
  42. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  43. data/fastlane/swift/Screengrabfile.swift +1 -1
  44. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  45. data/fastlane/swift/Snapshotfile.swift +1 -1
  46. data/fastlane/swift/SnapshotfileProtocol.swift +3 -3
  47. data/fastlane/swift/formatting/Brewfile.lock.json +19 -19
  48. data/fastlane_core/lib/fastlane_core/cert_checker.rb +11 -8
  49. data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
  50. data/fastlane_core/lib/fastlane_core/helper.rb +0 -15
  51. data/fastlane_core/lib/fastlane_core/print_table.rb +16 -0
  52. data/fastlane_core/lib/fastlane_core/project.rb +5 -0
  53. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +0 -4
  54. data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +1 -5
  55. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +2 -0
  56. data/frameit/lib/frameit/device_types.rb +4 -0
  57. data/frameit/lib/frameit/editor.rb +20 -0
  58. data/gym/lib/gym/detect_values.rb +2 -0
  59. data/gym/lib/gym/module.rb +2 -2
  60. data/match/lib/assets/READMETemplate.md +3 -5
  61. data/match/lib/match/encryption/encryption.rb +154 -0
  62. data/match/lib/match/encryption/openssl.rb +7 -38
  63. data/match/lib/match/encryption.rb +1 -0
  64. data/match/lib/match/runner.rb +44 -6
  65. data/match/lib/match/storage/git_storage.rb +4 -3
  66. data/match/lib/match/storage/interface.rb +9 -5
  67. data/pilot/lib/pilot/build_manager.rb +14 -6
  68. data/pilot/lib/pilot/manager.rb +2 -2
  69. data/pilot/lib/pilot/options.rb +1 -1
  70. data/snapshot/lib/snapshot/options.rb +2 -2
  71. data/snapshot/lib/snapshot/setup.rb +1 -1
  72. data/spaceship/lib/spaceship/connect_api/api_client.rb +2 -2
  73. data/spaceship/lib/spaceship/connect_api/models/app.rb +28 -33
  74. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +17 -0
  75. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +44 -9
  76. data/spaceship/lib/spaceship/connect_api/models/beta_tester.rb +30 -2
  77. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +2 -2
  78. data/spaceship/lib/spaceship/connect_api/models/device.rb +11 -6
  79. data/spaceship/lib/spaceship/connect_api/models/profile.rb +8 -1
  80. data/spaceship/lib/spaceship/connect_api/provisioning/client.rb +1 -1
  81. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +31 -22
  82. data/spaceship/lib/spaceship/connect_api/testflight/client.rb +1 -1
  83. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +47 -43
  84. data/spaceship/lib/spaceship/connect_api/token.rb +9 -3
  85. data/spaceship/lib/spaceship/connect_api/tunes/client.rb +1 -1
  86. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +96 -90
  87. data/spaceship/lib/spaceship/connect_api/users/client.rb +1 -1
  88. data/spaceship/lib/spaceship/connect_api/users/users.rb +15 -11
  89. data/spaceship/lib/spaceship/connect_api.rb +5 -2
  90. data/spaceship/lib/spaceship/portal/certificate.rb +2 -2
  91. data/spaceship/lib/spaceship/portal/provisioning_profile.rb +8 -1
  92. data/spaceship/lib/spaceship/stats_middleware.rb +2 -2
  93. data/trainer/lib/trainer/xcresult.rb +6 -10
  94. metadata +50 -33
@@ -19,7 +19,7 @@ module Spaceship
19
19
  end
20
20
 
21
21
  def self.hostname
22
- 'https://appstoreconnect.apple.com/iris/v1/'
22
+ 'https://appstoreconnect.apple.com/iris/'
23
23
  end
24
24
  end
25
25
  end
@@ -4,6 +4,10 @@ module Spaceship
4
4
  class ConnectAPI
5
5
  module Users
6
6
  module API
7
+ module Version
8
+ V1 = "v1"
9
+ end
10
+
7
11
  def users_request_client=(users_request_client)
8
12
  @users_request_client = users_request_client
9
13
  end
@@ -20,12 +24,12 @@ module Spaceship
20
24
  # Get list of users
21
25
  def get_users(filter: {}, includes: nil, limit: nil, sort: nil)
22
26
  params = users_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
23
- users_request_client.get("users", params)
27
+ users_request_client.get("#{Version::V1}/users", params)
24
28
  end
25
29
 
26
30
  # Delete existing user
27
31
  def delete_user(user_id: nil)
28
- users_request_client.delete("users/#{user_id}")
32
+ users_request_client.delete("#{Version::V1}/users/#{user_id}")
29
33
  end
30
34
 
31
35
  # Update existing user
@@ -55,7 +59,7 @@ module Spaceship
55
59
  # Avoid API error: You cannot set visible apps for this user because the user's roles give them access to all apps.
56
60
  body[:data].delete(:relationships) if all_apps_visible
57
61
 
58
- users_request_client.patch("users/#{user_id}", body)
62
+ users_request_client.patch("#{Version::V1}/users/#{user_id}", body)
59
63
  end
60
64
 
61
65
  # Add app permissions for user
@@ -74,7 +78,7 @@ module Spaceship
74
78
  end
75
79
  }
76
80
 
77
- users_request_client.post("users/#{user_id}/relationships/visibleApps", body)
81
+ users_request_client.post("#{Version::V1}/users/#{user_id}/relationships/visibleApps", body)
78
82
  end
79
83
 
80
84
  # Replace app permissions for user
@@ -88,7 +92,7 @@ module Spaceship
88
92
  end
89
93
  }
90
94
 
91
- users_request_client.patch("users/#{user_id}/relationships/visibleApps", body)
95
+ users_request_client.patch("#{Version::V1}/users/#{user_id}/relationships/visibleApps", body)
92
96
  end
93
97
 
94
98
  # Remove app permissions for user
@@ -102,13 +106,13 @@ module Spaceship
102
106
  end
103
107
  }
104
108
  params = nil
105
- users_request_client.delete("users/#{user_id}/relationships/visibleApps", params, body)
109
+ users_request_client.delete("#{Version::V1}/users/#{user_id}/relationships/visibleApps", params, body)
106
110
  end
107
111
 
108
112
  # Get app permissions for user
109
113
  def get_user_visible_apps(user_id: id, limit: nil)
110
114
  params = users_request_client.build_params(filter: {}, includes: nil, limit: limit, sort: nil)
111
- users_request_client.get("users/#{user_id}/visibleApps", params)
115
+ users_request_client.get("#{Version::V1}/users/#{user_id}/visibleApps", params)
112
116
  end
113
117
 
114
118
  #
@@ -118,7 +122,7 @@ module Spaceship
118
122
  # Get all invited users
119
123
  def get_user_invitations(filter: {}, includes: nil, limit: nil, sort: nil)
120
124
  params = users_request_client.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
121
- users_request_client.get("userInvitations", params)
125
+ users_request_client.get("#{Version::V1}/userInvitations", params)
122
126
  end
123
127
 
124
128
  # Invite new users to App Store Connect
@@ -150,18 +154,18 @@ module Spaceship
150
154
  # Avoid API error: You cannot set visible apps for this user because the user's roles give them access to all apps.
151
155
  body[:data].delete(:relationships) if all_apps_visible
152
156
 
153
- users_request_client.post("userInvitations", body)
157
+ users_request_client.post("#{Version::V1}/userInvitations", body)
154
158
  end
155
159
 
156
160
  # Remove invited user from team (not yet accepted)
157
161
  def delete_user_invitation(user_invitation_id: nil)
158
- users_request_client.delete("userInvitations/#{user_invitation_id}")
162
+ users_request_client.delete("#{Version::V1}/userInvitations/#{user_invitation_id}")
159
163
  end
160
164
 
161
165
  # Get all app permissions for invited user
162
166
  def get_user_invitation_visible_apps(user_invitation_id: id, limit: nil)
163
167
  params = users_request_client.build_params(filter: {}, includes: nil, limit: limit, sort: nil)
164
- users_request_client.get("userInvitations/#{user_invitation_id}/visibleApps", params)
168
+ users_request_client.get("#{Version::V1}/userInvitations/#{user_invitation_id}/visibleApps", params)
165
169
  end
166
170
  end
167
171
  end
@@ -86,9 +86,10 @@ module Spaceship
86
86
  IOS = "IOS"
87
87
  MAC_OS = "MAC_OS"
88
88
  TV_OS = "TV_OS"
89
+ VISION_OS = "VISION_OS"
89
90
  WATCH_OS = "WATCH_OS"
90
91
 
91
- ALL = [IOS, MAC_OS, TV_OS, WATCH_OS]
92
+ ALL = [IOS, MAC_OS, TV_OS, VISION_OS, WATCH_OS]
92
93
 
93
94
  def self.map(platform)
94
95
  return platform if ALL.include?(platform)
@@ -101,6 +102,8 @@ module Spaceship
101
102
  return Spaceship::ConnectAPI::Platform::MAC_OS
102
103
  when :ios
103
104
  return Spaceship::ConnectAPI::Platform::IOS
105
+ when :xros, :visionos
106
+ return Spaceship::ConnectAPI::Platform::VISION_OS
104
107
  else
105
108
  raise "Cannot find a matching platform for '#{platform}' - valid values are #{ALL.join(', ')}"
106
109
  end
@@ -123,7 +126,7 @@ module Spaceship
123
126
  case platform.to_sym
124
127
  when :osx, :macos, :mac
125
128
  return Spaceship::ConnectAPI::Platform::MAC_OS
126
- when :ios
129
+ when :ios, :xros, :visionos
127
130
  return Spaceship::ConnectAPI::Platform::IOS
128
131
  else
129
132
  raise "Cannot find a matching platform for '#{platform}' - valid values are #{ALL.join(', ')}"
@@ -205,7 +205,7 @@ module Spaceship
205
205
 
206
206
  # Class methods
207
207
  class << self
208
- # Create a new code signing request that can be used to
208
+ # Create a new cert signing request that can be used to
209
209
  # generate a new certificate
210
210
  # @example
211
211
  # Create a new certificate signing request
@@ -221,7 +221,7 @@ module Spaceship
221
221
  ['CN', 'PEM', OpenSSL::ASN1::UTF8STRING]
222
222
  ])
223
223
  csr.public_key = key.public_key
224
- csr.sign(key, OpenSSL::Digest::SHA1.new)
224
+ csr.sign(key, OpenSSL::Digest::SHA256.new)
225
225
  return [csr, key]
226
226
  end
227
227
 
@@ -484,7 +484,14 @@ module Spaceship
484
484
  # @return (Bool) Is the current provisioning profile valid?
485
485
  # To also verify the certificate call certificate_valid?
486
486
  def valid?
487
- return status == 'Active'
487
+ # Provisioning profiles are not invalidated automatically on the dev portal when the certificate expires.
488
+ # They become Invalid only when opened directly in the portal 🤷.
489
+ # We need to do an extra check on the expiration date to ensure the profile is valid.
490
+ expired = Time.now.utc > self.expires
491
+
492
+ is_valid = status == 'Active' && !expired
493
+
494
+ return is_valid
488
495
  end
489
496
 
490
497
  # @return (Bool) Is this profile managed by Xcode?
@@ -18,11 +18,11 @@ module Spaceship
18
18
  @services ||= [
19
19
  ServiceOption.new("App Store Connect API (official)", "api.appstoreconnect.apple.com", "JWT"),
20
20
  ServiceOption.new("App Store Connect API (web session)", Spaceship::ConnectAPI::TestFlight::Client.hostname.gsub("https://", ""), "Web session"),
21
- ServiceOption.new("App Store Connect API (web session)", Spaceship::ConnectAPI::Provisioning::Client.hostname.gsub("https://", ""), "Web session"),
22
21
  ServiceOption.new("Legacy iTunesConnect Auth", "idmsa.apple.com", "Web session"),
23
22
  ServiceOption.new("Legacy iTunesConnect Auth", "appstoreconnect.apple.com/olympus/v1/", "Web session"),
24
23
  ServiceOption.new("Legacy iTunesConnect", Spaceship::TunesClient.hostname.gsub("https://", ""), "Web session"),
25
- ServiceOption.new("Legacy iTunesConnect Developer Portal", Spaceship::PortalClient.hostname.gsub("https://", ""), "Web session")
24
+ ServiceOption.new("Legacy iTunesConnect Developer Portal", Spaceship::PortalClient.hostname.gsub("https://", ""), "Web session"),
25
+ ServiceOption.new("App Store Connect API (web session)", Spaceship::ConnectAPI::Provisioning::Client.hostname.gsub("https://", ""), "Web session")
26
26
  ]
27
27
  end
28
28
 
@@ -173,6 +173,8 @@ module Trainer
173
173
  end
174
174
 
175
175
  def find_failure(failures)
176
+ sanitizer = proc { |name| name.gsub(/\W/, "_") }
177
+ sanitized_identifier = sanitizer.call(self.identifier)
176
178
  if self.test_status == "Failure"
177
179
  # Tries to match failure on test case name
178
180
  # Example TestFailureIssueSummary:
@@ -184,16 +186,10 @@ module Trainer
184
186
  # or identifier: "TestThisDude/testFailureJosh2" (when Objective-C)
185
187
 
186
188
  found_failure = failures.find do |failure|
187
- # Clean test_case_name to match identifier format
188
- # Sanitize for Swift by replacing "." for "/"
189
- # Sanitize for Objective-C by removing "-", "[", "]", and replacing " " for ?/
190
- sanitized_test_case_name = failure.test_case_name
191
- .tr(".", "/")
192
- .tr("-", "")
193
- .tr("[", "")
194
- .tr("]", "")
195
- .tr(" ", "/")
196
- self.identifier == sanitized_test_case_name
189
+ # Sanitize both test case name and identifier in a consistent fashion, then replace all non-word
190
+ # chars with underscore, and compare them
191
+ sanitized_test_case_name = sanitizer.call(failure.test_case_name)
192
+ sanitized_identifier == sanitized_test_case_name
197
193
  end
198
194
  return found_failure
199
195
  else
metadata CHANGED
@@ -1,39 +1,39 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.219.0
4
+ version: 2.221.0
5
5
  platform: ruby
6
6
  authors:
7
- - Matthew Ellis
8
- - Jimmy Dee
9
- - Stefan Natchev
10
- - Roger Oba
11
- - Kohki Miki
7
+ - Danielle Tomlinson
12
8
  - Fumiya Nakamura
13
- - Josh Holtz
9
+ - Satoshi Namai
10
+ - Roger Oba
11
+ - Jan Piotrowski
14
12
  - Iulian Onofrei
15
- - Andrew McBurney
16
- - Maksym Grebenets
17
- - Manu Wallner
13
+ - Aaron Brager
14
+ - Matthew Ellis
15
+ - Josh Holtz
18
16
  - Jérôme Lacoste
17
+ - Manish Rathi
18
+ - Olivier Halligon
19
+ - Joshua Liebowitz
20
+ - Luka Mirosevic
19
21
  - Felix Krause
22
+ - Kohki Miki
23
+ - Daniel Jankowski
20
24
  - Łukasz Grabowski
21
- - Jan Piotrowski
22
- - Max Ott
25
+ - Maksym Grebenets
26
+ - Stefan Natchev
23
27
  - Helmut Januschka
24
- - Joshua Liebowitz
25
- - Danielle Tomlinson
26
- - Daniel Jankowski
27
- - Olivier Halligon
28
- - Satoshi Namai
29
- - Luka Mirosevic
30
28
  - Jorge Revuelta H
31
- - Manish Rathi
32
- - Aaron Brager
33
- autorequire:
29
+ - Jimmy Dee
30
+ - Andrew McBurney
31
+ - Max Ott
32
+ - Manu Wallner
33
+ autorequire:
34
34
  bindir: bin
35
35
  cert_chain: []
36
- date: 2024-01-04 00:00:00.000000000 Z
36
+ date: 2024-06-18 00:00:00.000000000 Z
37
37
  dependencies:
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: addressable
@@ -147,16 +147,16 @@ dependencies:
147
147
  name: colored
148
148
  requirement: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: '0'
152
+ version: '1.2'
153
153
  type: :runtime
154
154
  prerelease: false
155
155
  version_requirements: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - ">="
157
+ - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '0'
159
+ version: '1.2'
160
160
  - !ruby/object:Gem::Dependency
161
161
  name: commander
162
162
  requirement: !ruby/object:Gem::Requirement
@@ -498,6 +498,9 @@ dependencies:
498
498
  - - ">="
499
499
  - !ruby/object:Gem::Version
500
500
  version: 0.1.1
501
+ - - "<"
502
+ - !ruby/object:Gem::Version
503
+ version: 1.0.0
501
504
  type: :runtime
502
505
  prerelease: false
503
506
  version_requirements: !ruby/object:Gem::Requirement
@@ -505,6 +508,9 @@ dependencies:
505
508
  - - ">="
506
509
  - !ruby/object:Gem::Version
507
510
  version: 0.1.1
511
+ - - "<"
512
+ - !ruby/object:Gem::Version
513
+ version: 1.0.0
508
514
  - !ruby/object:Gem::Dependency
509
515
  name: plist
510
516
  requirement: !ruby/object:Gem::Requirement
@@ -551,14 +557,14 @@ dependencies:
551
557
  requirements:
552
558
  - - '='
553
559
  - !ruby/object:Gem::Version
554
- version: 0.1.3
560
+ version: 0.1.5
555
561
  type: :runtime
556
562
  prerelease: false
557
563
  version_requirements: !ruby/object:Gem::Requirement
558
564
  requirements:
559
565
  - - '='
560
566
  - !ruby/object:Gem::Version
561
- version: 0.1.3
567
+ version: 0.1.5
562
568
  - !ruby/object:Gem::Dependency
563
569
  name: simctl
564
570
  requirement: !ruby/object:Gem::Requirement
@@ -688,6 +694,9 @@ dependencies:
688
694
  - - ">="
689
695
  - !ruby/object:Gem::Version
690
696
  version: 0.0.3
697
+ - - "<"
698
+ - !ruby/object:Gem::Version
699
+ version: 2.0.0
691
700
  type: :runtime
692
701
  prerelease: false
693
702
  version_requirements: !ruby/object:Gem::Requirement
@@ -695,6 +704,9 @@ dependencies:
695
704
  - - ">="
696
705
  - !ruby/object:Gem::Version
697
706
  version: 0.0.3
707
+ - - "<"
708
+ - !ruby/object:Gem::Version
709
+ version: 2.0.0
698
710
  - !ruby/object:Gem::Dependency
699
711
  name: xcpretty
700
712
  requirement: !ruby/object:Gem::Requirement
@@ -715,7 +727,9 @@ email:
715
727
  - fastlane@krausefx.com
716
728
  executables:
717
729
  - bin-proxy
730
+ - console
718
731
  - fastlane
732
+ - match_file
719
733
  extensions: []
720
734
  extra_rdoc_files: []
721
735
  files:
@@ -723,7 +737,9 @@ files:
723
737
  - LICENSE
724
738
  - README.md
725
739
  - bin/bin-proxy
740
+ - bin/console
726
741
  - bin/fastlane
742
+ - bin/match_file
727
743
  - cert/README.md
728
744
  - cert/lib/cert.rb
729
745
  - cert/lib/cert/commands_generator.rb
@@ -1038,6 +1054,7 @@ files:
1038
1054
  - fastlane/lib/fastlane/command_line_handler.rb
1039
1055
  - fastlane/lib/fastlane/commands_generator.rb
1040
1056
  - fastlane/lib/fastlane/configuration_helper.rb
1057
+ - fastlane/lib/fastlane/console.rb
1041
1058
  - fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb
1042
1059
  - fastlane/lib/fastlane/documentation/actions_list.rb
1043
1060
  - fastlane/lib/fastlane/documentation/docs_generator.rb
@@ -1270,6 +1287,7 @@ files:
1270
1287
  - match/lib/match/change_password.rb
1271
1288
  - match/lib/match/commands_generator.rb
1272
1289
  - match/lib/match/encryption.rb
1290
+ - match/lib/match/encryption/encryption.rb
1273
1291
  - match/lib/match/encryption/interface.rb
1274
1292
  - match/lib/match/encryption/openssl.rb
1275
1293
  - match/lib/match/generator.rb
@@ -1642,7 +1660,7 @@ metadata:
1642
1660
  documentation_uri: https://docs.fastlane.tools/
1643
1661
  homepage_uri: https://fastlane.tools
1644
1662
  source_code_uri: https://github.com/fastlane/fastlane
1645
- post_install_message:
1663
+ post_install_message:
1646
1664
  rdoc_options: []
1647
1665
  require_paths:
1648
1666
  - cert/lib
@@ -1675,9 +1693,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1675
1693
  - !ruby/object:Gem::Version
1676
1694
  version: '0'
1677
1695
  requirements: []
1678
- rubygems_version: 3.2.33
1679
- signing_key:
1696
+ rubygems_version: 3.4.19
1697
+ signing_key:
1680
1698
  specification_version: 4
1681
- summary: The easiest way to automate beta deployments and releases for your iOS and
1682
- Android apps
1699
+ summary: The easiest way to build and release mobile apps.
1683
1700
  test_files: []