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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4b4ca8dee8c02f29be511a41ef49cda72c46ceef4f83304bc20a85f030ee7417
4
- data.tar.gz: ee60bf365f058e14edce21e29f709bb9a653dad0e704bc26eecc701587b6cf57
3
+ metadata.gz: 6d8f29ce571c194cdd4205a68d2c3499decca2d3d2fd397105e24e327f1b401a
4
+ data.tar.gz: 225123cb025970e86271c379fed40d6af294adbd5f50ae6047c96311682116e9
5
5
  SHA512:
6
- metadata.gz: 96978521357cda5bd03e0a7138eae6dec3faa42e0fbb26ec2f3ef28f7ff9bedbdc811e2e1e8a123f7354a97b417ee33d1754a7164811a331ef32851eed957311
7
- data.tar.gz: dbe71ffd1304b023ce991aa3ff47d5f9a39b63a24f0ec7fbb7dd2614dae8b4760b77e9352a2ec9e45a830e64bdb7f36440c3fb5297470120383ec86f5a2fa040
6
+ metadata.gz: 2cf3f576b4433b77b6a86edc9cf92fb615e38e2aaaf0090e247f4df3bcdd9233f177cc2ecc26bffa564cf970812a14e14c3e2376f03b41986237708b74c72a21
7
+ data.tar.gz: efe5b450ad7177392e05457915f54a54fc5afcd9c500c87c4a8f9bcaeaa1fbbb7f3fbf7ed2024dfec508afe3b25c272f5280fe6619bec205fbbd821bec24fa0e
data/README.md CHANGED
@@ -34,11 +34,11 @@ 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='andrew-mcburney'>
38
- <a href='https://github.com/armcburney'>
39
- <img src='https://github.com/armcburney.png?size=140'>
37
+ <td id='kohki-miki'>
38
+ <a href='https://github.com/giginet'>
39
+ <img src='https://github.com/giginet.png?size=140'>
40
40
  </a>
41
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
41
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
42
42
  </td>
43
43
  <td id='joshua-liebowitz'>
44
44
  <a href='https://github.com/taquitos'>
@@ -46,133 +46,133 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
46
46
  </a>
47
47
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
48
48
  </td>
49
- <td id='jérôme-lacoste'>
50
- <a href='https://github.com/lacostej'>
51
- <img src='https://github.com/lacostej.png?size=140'>
49
+ <td id='jimmy-dee'>
50
+ <a href='https://github.com/jdee'>
51
+ <img src='https://github.com/jdee.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
53
+ <h4 align='center'>Jimmy Dee</h4>
54
54
  </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'>
55
+ <td id='jan-piotrowski'>
56
+ <a href='https://github.com/janpio'>
57
+ <img src='https://github.com/janpio.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
60
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'>
61
+ <td id='jérôme-lacoste'>
62
+ <a href='https://github.com/lacostej'>
63
+ <img src='https://github.com/lacostej.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
+ <td id='josh-holtz'>
70
+ <a href='https://github.com/joshdholtz'>
71
+ <img src='https://github.com/joshdholtz.png?size=140'>
72
+ </a>
73
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
74
+ </td>
69
75
  <td id='danielle-tomlinson'>
70
76
  <a href='https://github.com/endocrimes'>
71
77
  <img src='https://github.com/endocrimes.png?size=140'>
72
78
  </a>
73
79
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
74
80
  </td>
75
- <td id='felix-krause'>
76
- <a href='https://github.com/KrauseFx'>
77
- <img src='https://github.com/KrauseFx.png?size=140'>
78
- </a>
79
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
80
- </td>
81
- <td id='iulian-onofrei'>
82
- <a href='https://github.com/revolter'>
83
- <img src='https://github.com/revolter.png?size=140'>
84
- </a>
85
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
86
- </td>
87
- <td id='jan-piotrowski'>
88
- <a href='https://github.com/janpio'>
89
- <img src='https://github.com/janpio.png?size=140'>
90
- </a>
91
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
92
- </td>
93
81
  <td id='matthew-ellis'>
94
82
  <a href='https://github.com/matthewellis'>
95
83
  <img src='https://github.com/matthewellis.png?size=140'>
96
84
  </a>
97
85
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
98
86
  </td>
99
- </tr>
100
- <tr>
101
- <td id='fumiya-nakamura'>
102
- <a href='https://github.com/nafu'>
103
- <img src='https://github.com/nafu.png?size=140'>
87
+ <td id='max-ott'>
88
+ <a href='https://github.com/max-ott'>
89
+ <img src='https://github.com/max-ott.png?size=140'>
104
90
  </a>
105
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
91
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
92
+ </td>
93
+ <td id='manu-wallner'>
94
+ <a href='https://github.com/milch'>
95
+ <img src='https://github.com/milch.png?size=140'>
96
+ </a>
97
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
106
98
  </td>
99
+ </tr>
100
+ <tr>
107
101
  <td id='luka-mirosevic'>
108
102
  <a href='https://github.com/lmirosevic'>
109
103
  <img src='https://github.com/lmirosevic.png?size=140'>
110
104
  </a>
111
105
  <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
112
106
  </td>
113
- <td id='manu-wallner'>
114
- <a href='https://github.com/milch'>
115
- <img src='https://github.com/milch.png?size=140'>
107
+ <td id='stefan-natchev'>
108
+ <a href='https://github.com/snatchev'>
109
+ <img src='https://github.com/snatchev.png?size=140'>
116
110
  </a>
117
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
118
112
  </td>
119
- <td id='olivier-halligon'>
120
- <a href='https://github.com/AliSoftware'>
121
- <img src='https://github.com/AliSoftware.png?size=140'>
113
+ <td id='maksym-grebenets'>
114
+ <a href='https://github.com/mgrebenets'>
115
+ <img src='https://github.com/mgrebenets.png?size=140'>
122
116
  </a>
123
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
124
118
  </td>
125
- <td id='jimmy-dee'>
126
- <a href='https://github.com/jdee'>
127
- <img src='https://github.com/jdee.png?size=140'>
119
+ <td id='felix-krause'>
120
+ <a href='https://github.com/KrauseFx'>
121
+ <img src='https://github.com/KrauseFx.png?size=140'>
128
122
  </a>
129
- <h4 align='center'>Jimmy Dee</h4>
123
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
124
+ </td>
125
+ <td id='helmut-januschka'>
126
+ <a href='https://github.com/hjanuschka'>
127
+ <img src='https://github.com/hjanuschka.png?size=140'>
128
+ </a>
129
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
130
130
  </td>
131
131
  </tr>
132
132
  <tr>
133
- <td id='kohki-miki'>
134
- <a href='https://github.com/giginet'>
135
- <img src='https://github.com/giginet.png?size=140'>
133
+ <td id='aaron-brager'>
134
+ <a href='https://github.com/getaaron'>
135
+ <img src='https://github.com/getaaron.png?size=140'>
136
136
  </a>
137
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
138
138
  </td>
139
- <td id='daniel-jankowski'>
140
- <a href='https://github.com/mollyIV'>
141
- <img src='https://github.com/mollyIV.png?size=140'>
139
+ <td id='andrew-mcburney'>
140
+ <a href='https://github.com/armcburney'>
141
+ <img src='https://github.com/armcburney.png?size=140'>
142
142
  </a>
143
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
144
144
  </td>
145
- <td id='josh-holtz'>
146
- <a href='https://github.com/joshdholtz'>
147
- <img src='https://github.com/joshdholtz.png?size=140'>
145
+ <td id='iulian-onofrei'>
146
+ <a href='https://github.com/revolter'>
147
+ <img src='https://github.com/revolter.png?size=140'>
148
148
  </a>
149
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
149
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
150
150
  </td>
151
- <td id='stefan-natchev'>
152
- <a href='https://github.com/snatchev'>
153
- <img src='https://github.com/snatchev.png?size=140'>
151
+ <td id='jorge-revuelta-h'>
152
+ <a href='https://github.com/minuscorp'>
153
+ <img src='https://github.com/minuscorp.png?size=140'>
154
154
  </a>
155
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
155
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
156
156
  </td>
157
- <td id='aaron-brager'>
158
- <a href='https://github.com/getaaron'>
159
- <img src='https://github.com/getaaron.png?size=140'>
157
+ <td id='olivier-halligon'>
158
+ <a href='https://github.com/AliSoftware'>
159
+ <img src='https://github.com/AliSoftware.png?size=140'>
160
160
  </a>
161
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
161
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
162
162
  </td>
163
163
  </tr>
164
164
  <tr>
165
- <td id='maksym-grebenets'>
166
- <a href='https://github.com/mgrebenets'>
167
- <img src='https://github.com/mgrebenets.png?size=140'>
165
+ <td id='daniel-jankowski'>
166
+ <a href='https://github.com/mollyIV'>
167
+ <img src='https://github.com/mollyIV.png?size=140'>
168
168
  </a>
169
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
169
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
170
170
  </td>
171
- <td id='helmut-januschka'>
172
- <a href='https://github.com/hjanuschka'>
173
- <img src='https://github.com/hjanuschka.png?size=140'>
171
+ <td id='fumiya-nakamura'>
172
+ <a href='https://github.com/nafu'>
173
+ <img src='https://github.com/nafu.png?size=140'>
174
174
  </a>
175
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
175
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -31,7 +31,7 @@ module Cert
31
31
  end
32
32
 
33
33
  def api_token
34
- @api_token ||= Spaceship::ConnectAPI::Token.create(Cert.config[:api_key]) if Cert.config[:api_key]
34
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**Cert.config[:api_key]) if Cert.config[:api_key]
35
35
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Cert.config[:api_key_path]) if Cert.config[:api_key_path]
36
36
  return @api_token
37
37
  end
@@ -39,7 +39,7 @@ module Deliver
39
39
  end
40
40
 
41
41
  def api_token
42
- @api_token ||= Spaceship::ConnectAPI::Token.create(options[:api_key]) if options[:api_key]
42
+ @api_token ||= Spaceship::ConnectAPI::Token.create(**options[:api_key]) if options[:api_key]
43
43
  @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(options[:api_key_path]) if options[:api_key_path]
44
44
  return @api_token
45
45
  end
@@ -179,7 +179,11 @@ module Deliver
179
179
 
180
180
  transporter = transporter_for_selected_team
181
181
  result = transporter.upload(package_path: package_path)
182
- UI.user_error!("Could not upload binary to App Store Connect. Check out the error above", show_github_issues: true) unless result
182
+
183
+ unless result
184
+ transporter_errors = transporter.displayable_errors
185
+ UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
186
+ end
183
187
  end
184
188
 
185
189
  def reject_version_if_possible
@@ -100,7 +100,7 @@ module Fastlane
100
100
 
101
101
  def self.api_token(params)
102
102
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
103
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
103
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
104
104
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
105
105
  return api_token
106
106
  end
@@ -76,7 +76,10 @@ module Fastlane
76
76
  description: "The token session duration",
77
77
  optional: true,
78
78
  default_value: Spaceship::ConnectAPI::Token::MAX_TOKEN_DURATION,
79
- type: Integer),
79
+ type: Integer,
80
+ verify_block: proc do |value|
81
+ UI.user_error!("The duration can't be more than 1200 (20 minutes) and the value entered was '#{value}'") unless value <= 1200
82
+ end),
80
83
  FastlaneCore::ConfigItem.new(key: :in_house,
81
84
  env_name: "APP_STORE_CONNECT_API_KEY_IN_HOUSE",
82
85
  description: "Is App Store or Enterprise (in house) team? App Store Connect API cannot determine this on its own (yet)",
@@ -3,7 +3,7 @@ module Fastlane
3
3
  class BackupFileAction < Action
4
4
  def self.run(params)
5
5
  path = params[:path]
6
- FileUtils.cp(path, "#{path}.back", { preserve: true })
6
+ FileUtils.cp(path, "#{path}.back", preserve: true)
7
7
  UI.message("Successfully created a backup 💾")
8
8
  end
9
9
 
@@ -33,6 +33,7 @@ module Fastlane
33
33
  GithubApiAction.run({
34
34
  server_url: params[:server_url],
35
35
  api_token: params[:api_token],
36
+ api_bearer: params[:api_bearer],
36
37
  secure: params[:secure],
37
38
  http_method: "PUT",
38
39
  path: File.join("repos", params[:repository_name], "contents", api_file_path),
@@ -104,12 +105,21 @@ module Fastlane
104
105
  FastlaneCore::ConfigItem.new(key: :api_token,
105
106
  env_name: "FL_COMMIT_GITHUB_FILE_API_TOKEN",
106
107
  description: "Personal API Token for GitHub - generate one at https://github.com/settings/tokens",
108
+ conflicting_options: [:api_bearer],
107
109
  sensitive: true,
108
110
  is_string: true,
109
111
  code_gen_sensitive: true,
110
112
  default_value: ENV["GITHUB_API_TOKEN"],
111
113
  default_value_dynamic: true,
112
- optional: false),
114
+ optional: true),
115
+ FastlaneCore::ConfigItem.new(key: :api_bearer,
116
+ env_name: "FL_COMMIT_GITHUB_FILE_API_BEARER",
117
+ sensitive: true,
118
+ code_gen_sensitive: true,
119
+ description: "Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable",
120
+ conflicting_options: [:api_token],
121
+ optional: true,
122
+ default_value: nil),
113
123
  FastlaneCore::ConfigItem.new(key: :branch,
114
124
  env_name: "FL_COMMIT_GITHUB_FILE_BRANCH",
115
125
  description: "The branch that the file should be committed on (default: master)",
@@ -14,6 +14,11 @@ module Fastlane
14
14
  create_command << ['-output', "\"#{params[:output]}\""]
15
15
  create_command << ['-allow-internal-distribution'] if params[:allow_internal_distribution]
16
16
 
17
+ if File.directory?(params[:output])
18
+ UI.message("Deleting existing: #{params[:output]}")
19
+ FileUtils.remove_dir(params[:output])
20
+ end
21
+
17
22
  Actions.lane_context[SharedValues::XCFRAMEWORK_PATH] = params[:output]
18
23
 
19
24
  sh(create_command)
@@ -11,6 +11,7 @@ module Fastlane
11
11
  GithubApiAction.run(
12
12
  server_url: params[:server_url],
13
13
  api_token: params[:api_token],
14
+ api_bearer: params[:api_bearer],
14
15
  http_method: 'GET',
15
16
  path: "repos/#{params[:url]}/releases",
16
17
  error_handlers: {
@@ -133,7 +134,16 @@ module Fastlane
133
134
  default_value: ENV["GITHUB_API_TOKEN"],
134
135
  default_value_dynamic: true,
135
136
  description: "GitHub Personal Token (required for private repositories)",
136
- optional: true)
137
+ conflicting_options: [:api_bearer],
138
+ optional: true),
139
+ FastlaneCore::ConfigItem.new(key: :api_bearer,
140
+ env_name: "FL_GITHUB_RELEASE_API_BEARER",
141
+ sensitive: true,
142
+ code_gen_sensitive: true,
143
+ description: "Use a Bearer authorization token. Usually generated by Github Apps, e.g. GitHub Actions GITHUB_TOKEN environment variable",
144
+ conflicting_options: [:api_token],
145
+ optional: true,
146
+ default_value: nil)
137
147
  ]
138
148
  end
139
149
 
@@ -143,8 +143,9 @@ module Fastlane
143
143
  default_value: {},
144
144
  optional: true),
145
145
  FastlaneCore::ConfigItem.new(key: :headers,
146
+ env_name: "FL_GITHUB_API_HEADERS",
146
147
  description: "Optional headers to apply",
147
- is_string: false,
148
+ type: Hash,
148
149
  default_value: {},
149
150
  optional: true),
150
151
  FastlaneCore::ConfigItem.new(key: :secure,
@@ -33,10 +33,11 @@ module Fastlane
33
33
  agv_disabled = !system([command_prefix, 'agvtool what-version', command_suffix].join(' '))
34
34
  raise "Apple Generic Versioning is not enabled." if agv_disabled && params[:build_number].nil?
35
35
 
36
+ mode = params[:skip_info_plist] ? '' : ' -all'
36
37
  command = [
37
38
  command_prefix,
38
39
  'agvtool',
39
- params[:build_number] ? "new-version -all #{params[:build_number].to_s.strip}" : 'next-version -all',
40
+ params[:build_number] ? "new-version#{mode} #{params[:build_number].to_s.strip}" : "next-version#{mode}",
40
41
  command_suffix
41
42
  ].join(' ')
42
43
 
@@ -66,6 +67,12 @@ module Fastlane
66
67
  description: "Change to a specific version. When you provide this parameter, Apple Generic Versioning does not have to be enabled",
67
68
  optional: true,
68
69
  is_string: false),
70
+ FastlaneCore::ConfigItem.new(key: :skip_info_plist,
71
+ env_name: "FL_BUILD_NUMBER_SKIP_INFO_PLIST",
72
+ description: "Don't update Info.plist files when updating the build version",
73
+ is_string: false,
74
+ type: Boolean,
75
+ default_value: false),
69
76
  FastlaneCore::ConfigItem.new(key: :xcodeproj,
70
77
  env_name: "FL_BUILD_NUMBER_PROJECT",
71
78
  description: "optional, you must specify the path to your main Xcode project if it is not in the project root directory",
@@ -39,7 +39,7 @@ module Fastlane
39
39
 
40
40
  def self.api_token(params)
41
41
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
42
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
42
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
43
43
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
44
44
  return api_token
45
45
  end
@@ -85,7 +85,7 @@ module Fastlane
85
85
 
86
86
  def self.api_token(params)
87
87
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
88
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
88
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
89
89
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
90
90
  return api_token
91
91
  end
@@ -5,7 +5,7 @@ module Fastlane
5
5
  path = params[:path]
6
6
  backup_path = "#{path}.back"
7
7
  UI.user_error!("Could not find file '#{backup_path}'") unless File.exist?(backup_path)
8
- FileUtils.cp(backup_path, path, { preserve: true })
8
+ FileUtils.cp(backup_path, path, preserve: true)
9
9
  FileUtils.rm(backup_path)
10
10
  UI.message("Successfully restored backup 📤")
11
11
  end
@@ -80,7 +80,7 @@ module Fastlane
80
80
 
81
81
  def self.api_token(params)
82
82
  params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
83
- api_token ||= Spaceship::ConnectAPI::Token.create(params[:api_key]) if params[:api_key]
83
+ api_token ||= Spaceship::ConnectAPI::Token.create(**params[:api_key]) if params[:api_key]
84
84
  api_token ||= Spaceship::ConnectAPI::Token.from_json_file(params[:api_key_path]) if params[:api_key_path]
85
85
  return api_token
86
86
  end