fastlane 2.221.0 → 2.222.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +92 -92
  3. data/deliver/lib/deliver/options.rb +2 -2
  4. data/deliver/lib/deliver/runner.rb +2 -2
  5. data/deliver/lib/deliver/submit_for_review.rb +0 -77
  6. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -3
  8. data/fastlane/lib/fastlane/actions/download_dsyms.rb +2 -2
  9. data/fastlane/lib/fastlane/actions/ensure_git_status_clean.rb +16 -1
  10. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
  11. data/fastlane/lib/fastlane/actions/set_changelog.rb +3 -3
  12. data/fastlane/lib/fastlane/fast_file.rb +3 -1
  13. data/fastlane/lib/fastlane/version.rb +1 -1
  14. data/fastlane/swift/Deliverfile.swift +1 -1
  15. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  16. data/fastlane/swift/Fastlane.swift +7 -7
  17. data/fastlane/swift/Gymfile.swift +1 -1
  18. data/fastlane/swift/GymfileProtocol.swift +1 -1
  19. data/fastlane/swift/Matchfile.swift +1 -1
  20. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  21. data/fastlane/swift/Precheckfile.swift +1 -1
  22. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  23. data/fastlane/swift/Scanfile.swift +1 -1
  24. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  25. data/fastlane/swift/Screengrabfile.swift +1 -1
  26. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  27. data/fastlane/swift/Snapshotfile.swift +1 -1
  28. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  29. data/fastlane/swift/formatting/Brewfile.lock.json +17 -17
  30. data/gym/lib/gym/generators/build_command_generator.rb +1 -1
  31. data/spaceship/lib/spaceship/connect_api/models/app.rb +10 -0
  32. data/spaceship/lib/spaceship/connect_api/models/app_availability.rb +23 -0
  33. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -19
  34. data/spaceship/lib/spaceship/connect_api/models/territory_availability.rb +62 -0
  35. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +9 -45
  36. data/spaceship/lib/spaceship/connect_api.rb +2 -1
  37. data/spaceship/lib/spaceship/tunes/app_submission.rb +0 -19
  38. data/spaceship/lib/spaceship/tunes/application.rb +1 -1
  39. data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -0
  40. data/trainer/lib/trainer/test_parser.rb +27 -2
  41. metadata +25 -24
  42. data/spaceship/lib/spaceship/connect_api/models/idfa_declaration.rb +0 -43
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: acc49f980e34ecc25b6072476316fec87d28cc297821ba0a97456186f7464d28
4
- data.tar.gz: f9d8e7d4752ea516634aace406c63f972cf162d7162dc9967480f0582e9c4866
3
+ metadata.gz: 3c2fcb0e5c62891ef4b01994e10d1c7880f0738f5f289d28633e983e657eede5
4
+ data.tar.gz: 5e56397ff26ad27aee638525ed836aea56749477029a81fd263ac747da7fb760
5
5
  SHA512:
6
- metadata.gz: 4412e52410d0082b59032b34e38c62e90d4a26ad6c9fdd86169b6546b1ade46e4536f90d9eb39afed28f766ac31713cf5577cf2af3ef90bde818ffb49ca0ee7d
7
- data.tar.gz: 228d527f5c0956e4f84ab797a12ace580d52e2632a957a829e0b2996012caf55998221441a0b9c8d2d25ccacc992a682ce22e36eb40cb98748be70fb3242a3c0
6
+ metadata.gz: 38e276729f76d983d1e61807d6502cd8d09b9b357be64b04f2045870db69803923e928566fd2df06e9727d5d69e58063837c70c32a5f9d2c6ef9693d6aa195b0
7
+ data.tar.gz: 23b475e6e9dede5602fceebd40be36fc3026a74e9b29d90f5942e4a084761bd6820f03d77733f8700a21957384ed52d560d089126a067c74475678eea42426e4
data/README.md CHANGED
@@ -35,11 +35,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
35
35
  <!-- This table is regenerated and resorted on each release -->
36
36
  <table id='team'>
37
37
  <tr>
38
- <td id='joshua-liebowitz'>
39
- <a href='https://github.com/taquitos'>
40
- <img src='https://github.com/taquitos.png' width='140px;'>
38
+ <td id='manish-rathi'>
39
+ <a href='https://github.com/crazymanish'>
40
+ <img src='https://github.com/crazymanish.png' width='140px;'>
41
41
  </a>
42
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
43
43
  </td>
44
44
  <td id='iulian-onofrei'>
45
45
  <a href='https://github.com/revolter'>
@@ -47,37 +47,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
47
47
  </a>
48
48
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
49
49
  </td>
50
- <td id='maksym-grebenets'>
51
- <a href='https://github.com/mgrebenets'>
52
- <img src='https://github.com/mgrebenets.png' width='140px;'>
53
- </a>
54
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
55
- </td>
56
- <td id='roger-oba'>
57
- <a href='https://github.com/rogerluan'>
58
- <img src='https://github.com/rogerluan.png' width='140px;'>
59
- </a>
60
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
61
- </td>
62
- <td id='jan-piotrowski'>
63
- <a href='https://github.com/janpio'>
64
- <img src='https://github.com/janpio.png' width='140px;'>
65
- </a>
66
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
67
- </td>
68
- </tr>
69
- <tr>
70
- <td id='jimmy-dee'>
71
- <a href='https://github.com/jdee'>
72
- <img src='https://github.com/jdee.png' width='140px;'>
50
+ <td id='helmut-januschka'>
51
+ <a href='https://github.com/hjanuschka'>
52
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
73
53
  </a>
74
- <h4 align='center'>Jimmy Dee</h4>
54
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
75
55
  </td>
76
- <td id='satoshi-namai'>
77
- <a href='https://github.com/ainame'>
78
- <img src='https://github.com/ainame.png' width='140px;'>
56
+ <td id='stefan-natchev'>
57
+ <a href='https://github.com/snatchev'>
58
+ <img src='https://github.com/snatchev.png' width='140px;'>
79
59
  </a>
80
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
81
61
  </td>
82
62
  <td id='manu-wallner'>
83
63
  <a href='https://github.com/milch'>
@@ -85,25 +65,45 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
85
65
  </a>
86
66
  <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
87
67
  </td>
68
+ </tr>
69
+ <tr>
70
+ <td id='maksym-grebenets'>
71
+ <a href='https://github.com/mgrebenets'>
72
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
73
+ </a>
74
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
75
+ </td>
88
76
  <td id='jorge-revuelta-h'>
89
77
  <a href='https://github.com/minuscorp'>
90
78
  <img src='https://github.com/minuscorp.png' width='140px;'>
91
79
  </a>
92
80
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
93
81
  </td>
94
- <td id='fumiya-nakamura'>
95
- <a href='https://github.com/nafu'>
96
- <img src='https://github.com/nafu.png' width='140px;'>
82
+ <td id='jérôme-lacoste'>
83
+ <a href='https://github.com/lacostej'>
84
+ <img src='https://github.com/lacostej.png' width='140px;'>
97
85
  </a>
98
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
87
+ </td>
88
+ <td id='roger-oba'>
89
+ <a href='https://github.com/rogerluan'>
90
+ <img src='https://github.com/rogerluan.png' width='140px;'>
91
+ </a>
92
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
93
+ </td>
94
+ <td id='jan-piotrowski'>
95
+ <a href='https://github.com/janpio'>
96
+ <img src='https://github.com/janpio.png' width='140px;'>
97
+ </a>
98
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
99
99
  </td>
100
100
  </tr>
101
101
  <tr>
102
- <td id='łukasz-grabowski'>
103
- <a href='https://github.com/lucgrabowski'>
104
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
102
+ <td id='max-ott'>
103
+ <a href='https://github.com/max-ott'>
104
+ <img src='https://github.com/max-ott.png' width='140px;'>
105
105
  </a>
106
- <h4 align='center'>Łukasz Grabowski</h4>
106
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
107
107
  </td>
108
108
  <td id='matthew-ellis'>
109
109
  <a href='https://github.com/matthewellis'>
@@ -111,69 +111,69 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
111
111
  </a>
112
112
  <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
113
113
  </td>
114
- <td id='olivier-halligon'>
115
- <a href='https://github.com/AliSoftware'>
116
- <img src='https://github.com/AliSoftware.png' width='140px;'>
114
+ <td id='danielle-tomlinson'>
115
+ <a href='https://github.com/endocrimes'>
116
+ <img src='https://github.com/endocrimes.png' width='140px;'>
117
117
  </a>
118
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
119
119
  </td>
120
- <td id='aaron-brager'>
121
- <a href='https://github.com/getaaron'>
122
- <img src='https://github.com/getaaron.png' width='140px;'>
120
+ <td id='daniel-jankowski'>
121
+ <a href='https://github.com/mollyIV'>
122
+ <img src='https://github.com/mollyIV.png' width='140px;'>
123
123
  </a>
124
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
125
125
  </td>
126
- <td id='helmut-januschka'>
127
- <a href='https://github.com/hjanuschka'>
128
- <img src='https://github.com/hjanuschka.png' width='140px;'>
126
+ <td id='kohki-miki'>
127
+ <a href='https://github.com/giginet'>
128
+ <img src='https://github.com/giginet.png' width='140px;'>
129
129
  </a>
130
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
131
131
  </td>
132
132
  </tr>
133
133
  <tr>
134
- <td id='jérôme-lacoste'>
135
- <a href='https://github.com/lacostej'>
136
- <img src='https://github.com/lacostej.png' width='140px;'>
134
+ <td id='jimmy-dee'>
135
+ <a href='https://github.com/jdee'>
136
+ <img src='https://github.com/jdee.png' width='140px;'>
137
137
  </a>
138
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
138
+ <h4 align='center'>Jimmy Dee</h4>
139
139
  </td>
140
- <td id='stefan-natchev'>
141
- <a href='https://github.com/snatchev'>
142
- <img src='https://github.com/snatchev.png' width='140px;'>
140
+ <td id='satoshi-namai'>
141
+ <a href='https://github.com/ainame'>
142
+ <img src='https://github.com/ainame.png' width='140px;'>
143
143
  </a>
144
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
145
145
  </td>
146
- <td id='max-ott'>
147
- <a href='https://github.com/max-ott'>
148
- <img src='https://github.com/max-ott.png' width='140px;'>
146
+ <td id='luka-mirosevic'>
147
+ <a href='https://github.com/lmirosevic'>
148
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
149
149
  </a>
150
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
150
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
151
151
  </td>
152
- <td id='manish-rathi'>
153
- <a href='https://github.com/crazymanish'>
154
- <img src='https://github.com/crazymanish.png' width='140px;'>
152
+ <td id='joshua-liebowitz'>
153
+ <a href='https://github.com/taquitos'>
154
+ <img src='https://github.com/taquitos.png' width='140px;'>
155
155
  </a>
156
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
157
157
  </td>
158
- <td id='kohki-miki'>
159
- <a href='https://github.com/giginet'>
160
- <img src='https://github.com/giginet.png' width='140px;'>
158
+ <td id='josh-holtz'>
159
+ <a href='https://github.com/joshdholtz'>
160
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
161
161
  </a>
162
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
163
163
  </td>
164
164
  </tr>
165
165
  <tr>
166
- <td id='danielle-tomlinson'>
167
- <a href='https://github.com/endocrimes'>
168
- <img src='https://github.com/endocrimes.png' width='140px;'>
166
+ <td id='fumiya-nakamura'>
167
+ <a href='https://github.com/nafu'>
168
+ <img src='https://github.com/nafu.png' width='140px;'>
169
169
  </a>
170
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
170
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
171
171
  </td>
172
- <td id='josh-holtz'>
173
- <a href='https://github.com/joshdholtz'>
174
- <img src='https://github.com/joshdholtz.png' width='140px;'>
172
+ <td id='łukasz-grabowski'>
173
+ <a href='https://github.com/lucgrabowski'>
174
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
175
175
  </a>
176
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
176
+ <h4 align='center'>Łukasz Grabowski</h4>
177
177
  </td>
178
178
  <td id='felix-krause'>
179
179
  <a href='https://github.com/KrauseFx'>
@@ -181,25 +181,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
181
181
  </a>
182
182
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
183
183
  </td>
184
- <td id='daniel-jankowski'>
185
- <a href='https://github.com/mollyIV'>
186
- <img src='https://github.com/mollyIV.png' width='140px;'>
184
+ <td id='aaron-brager'>
185
+ <a href='https://github.com/getaaron'>
186
+ <img src='https://github.com/getaaron.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
189
189
  </td>
190
- <td id='andrew-mcburney'>
191
- <a href='https://github.com/armcburney'>
192
- <img src='https://github.com/armcburney.png' width='140px;'>
190
+ <td id='olivier-halligon'>
191
+ <a href='https://github.com/AliSoftware'>
192
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
194
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  <tr>
198
- <td id='luka-mirosevic'>
199
- <a href='https://github.com/lmirosevic'>
200
- <img src='https://github.com/lmirosevic.png' width='140px;'>
198
+ <td id='andrew-mcburney'>
199
+ <a href='https://github.com/armcburney'>
200
+ <img src='https://github.com/armcburney.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -99,7 +99,7 @@ module Deliver
99
99
  optional: true,
100
100
  default_value: "ios",
101
101
  verify_block: proc do |value|
102
- UI.user_error!("The platform can only be ios, appletvos, or osx") unless %('ios', 'appletvos', 'osx').include?(value)
102
+ UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %('ios', 'appletvos', 'xros', 'osx').include?(value)
103
103
  end),
104
104
 
105
105
  # live version
@@ -249,7 +249,7 @@ module Deliver
249
249
  end),
250
250
  FastlaneCore::ConfigItem.new(key: :submission_information,
251
251
  short_option: "-b",
252
- description: "Extra information for the submission (e.g. compliance specifications, IDFA settings)",
252
+ description: "Extra information for the submission (e.g. compliance specifications)",
253
253
  type: Hash,
254
254
  optional: true),
255
255
 
@@ -172,7 +172,7 @@ module Deliver
172
172
  transporter = transporter_for_selected_team
173
173
 
174
174
  case platform
175
- when "ios", "appletvos"
175
+ when "ios", "appletvos", "xros"
176
176
  package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
177
177
  app_id: Deliver.cache[:app].id,
178
178
  ipa_path: ipa_path,
@@ -209,7 +209,7 @@ module Deliver
209
209
  transporter = transporter_for_selected_team
210
210
 
211
211
  case platform
212
- when "ios", "appletvos"
212
+ when "ios", "appletvos", "xros"
213
213
  package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
214
214
  app_id: Deliver.cache[:app].id,
215
215
  ipa_path: ipa_path,
@@ -20,7 +20,6 @@ module Deliver
20
20
  build = select_build(options, app, version, platform)
21
21
 
22
22
  update_export_compliance(options, app, build)
23
- update_idfa(options, app, version)
24
23
  update_submission_information(options, app)
25
24
 
26
25
  create_review_submission(options, app, version, platform)
@@ -120,82 +119,6 @@ module Deliver
120
119
  end
121
120
  end
122
121
 
123
- def update_idfa(options, app, version)
124
- submission_information = options[:submission_information] || {}
125
- submission_information = submission_information.transform_keys(&:to_sym)
126
-
127
- uses_idfa = submission_information[:add_id_info_uses_idfa]
128
-
129
- idfa_declaration = begin
130
- version.fetch_idfa_declaration
131
- rescue
132
- nil
133
- end
134
-
135
- updated_idfa = false
136
-
137
- # Set IDFA on version
138
- unless uses_idfa.nil?
139
- UI.verbose("Updating app store version for IDFA status of '#{uses_idfa}'")
140
- version = version.update(attributes: {
141
- usesIdfa: uses_idfa
142
- })
143
- UI.verbose("Updated app store version for IDFA status of '#{version.uses_idfa}'")
144
- updated_idfa = true
145
- end
146
-
147
- # Error if uses_idfa not set
148
- if version.uses_idfa.nil?
149
- message = [
150
- "Use of Advertising Identifier (IDFA) is required to submit",
151
- "Add information to the :submission_information option...",
152
- " Docs: http://docs.fastlane.tools/actions/deliver/#compliance-and-idfa-settings",
153
- " Example: submission_information: { add_id_info_uses_idfa: false }",
154
- " Example: submission_information: {",
155
- " add_id_info_uses_idfa: true,",
156
- " add_id_info_serves_ads: false,",
157
- " add_id_info_tracks_install: true,",
158
- " add_id_info_tracks_action: true,",
159
- " add_id_info_limits_tracking: true",
160
- " }",
161
- " Example CLI:",
162
- " --submission_information \"{\\\"add_id_info_uses_idfa\\\": false}\""
163
- ].join("\n")
164
- UI.user_error!(message)
165
- end
166
-
167
- # Create, update, or delete IDFA declaration
168
- if uses_idfa == false
169
- if idfa_declaration
170
- UI.verbose("Deleting IDFA declaration")
171
- idfa_declaration.delete!
172
- updated_idfa = true
173
- UI.verbose("Deleted IDFA declaration")
174
- end
175
- elsif uses_idfa == true
176
- attributes = {
177
- honorsLimitedAdTracking: !!submission_information[:add_id_info_limits_tracking],
178
- servesAds: !!submission_information[:add_id_info_serves_ads],
179
- attributesAppInstallationToPreviousAd: !!submission_information[:add_id_info_tracks_install],
180
- attributesActionWithPreviousAd: !!submission_information[:add_id_info_tracks_action]
181
- }
182
-
183
- if idfa_declaration
184
- UI.verbose("Updating IDFA declaration")
185
- idfa_declaration.update(attributes: attributes)
186
- UI.verbose("Updated IDFA declaration")
187
- else
188
- UI.verbose("Creating IDFA declaration")
189
- version.create_idfa_declaration(attributes: attributes)
190
- UI.verbose("Created IDFA declaration")
191
- end
192
-
193
- updated_idfa = true
194
- end
195
-
196
- UI.success("Successfully updated IDFA declarations on App Store Connect") if updated_idfa
197
- end
198
-
199
122
  def update_submission_information(options, app)
200
123
  submission_information = options[:submission_information] || {}
201
124
  submission_information = submission_information.transform_keys(&:to_sym)
@@ -186,7 +186,7 @@ module Fastlane
186
186
  optional: true,
187
187
  default_value: "ios",
188
188
  verify_block: proc do |value|
189
- UI.user_error!("The platform can only be ios, appletvos, or osx") unless %('ios', 'appletvos', 'osx').include?(value)
189
+ UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %('ios', 'appletvos', 'xros', 'osx').include?(value)
190
190
  end),
191
191
  FastlaneCore::ConfigItem.new(key: :team_name,
192
192
  short_option: "-e",
@@ -374,6 +374,7 @@ The available options:
374
374
 
375
375
  - 'ios'
376
376
  - 'appletvos'
377
+ - 'xros'
377
378
  - 'osx'
378
379
 
379
380
 
@@ -431,12 +432,12 @@ end
431
432
 
432
433
  Omit `build_number` to let _fastlane_ automatically select the latest build number for the current version being edited for release from App Store Connect.
433
434
 
434
- ### Compliance and IDFA settings
435
+ ### Compliance settings
435
436
 
436
- Use the `submission_information` parameter for additional submission specifiers, including compliance and IDFA settings. Look at the Spaceship's [`app_submission.rb`](https://github.com/fastlane/fastlane/blob/master/spaceship/lib/spaceship/tunes/app_submission.rb) file for options. See [this example](https://github.com/artsy/eigen/blob/faa02e2746194d8d7c11899474de9c517435eca4/fastlane/Fastfile#L131-L149).
437
+ Use the `submission_information` parameter for additional submission specifiers, including compliance settings. Look at the Spaceship's [`app_submission.rb`](https://github.com/fastlane/fastlane/blob/master/spaceship/lib/spaceship/tunes/app_submission.rb) file for options. See [this example](https://github.com/artsy/eigen/blob/faa02e2746194d8d7c11899474de9c517435eca4/fastlane/Fastfile#L131-L149).
437
438
 
438
439
  ```no-highlight
439
- fastlane deliver submit_build --build_number 830 --submission_information "{\"export_compliance_uses_encryption\": false, \"add_id_info_uses_idfa\": false }"
440
+ fastlane deliver submit_build --build_number 830 --submission_information "{\"export_compliance_uses_encryption\": false }"
440
441
  ```
441
442
 
442
443
  ### App Privacy Details
@@ -290,7 +290,7 @@ module Fastlane
290
290
  FastlaneCore::ConfigItem.new(key: :platform,
291
291
  short_option: "-p",
292
292
  env_name: "DOWNLOAD_DSYMS_PLATFORM",
293
- description: "The app platform for dSYMs you wish to download (ios, appletvos)",
293
+ description: "The app platform for dSYMs you wish to download (ios, xros, appletvos)",
294
294
  default_value: :ios),
295
295
  FastlaneCore::ConfigItem.new(key: :version,
296
296
  short_option: "-v",
@@ -351,7 +351,7 @@ module Fastlane
351
351
  end
352
352
 
353
353
  def self.is_supported?(platform)
354
- [:ios, :appletvos].include?(platform)
354
+ [:ios, :appletvos, :xros].include?(platform)
355
355
  end
356
356
 
357
357
  def self.example_code
@@ -23,7 +23,9 @@ module Fastlane
23
23
  # Manual post processing trying to ignore certain file paths
24
24
  if (ignore_files = params[:ignore_files])
25
25
  repo_status = repo_status.lines.reject do |line|
26
- path = line.split(' ').last
26
+ path = path_from_git_status_line(line)
27
+ next if path.empty?
28
+
27
29
  was_found = ignore_files.include?(path)
28
30
 
29
31
  UI.message("Ignoring '#{path}'") if was_found
@@ -54,6 +56,19 @@ module Fastlane
54
56
  end
55
57
  end
56
58
 
59
+ def self.path_from_git_status_line(line)
60
+ # Extract the file path from the line based on https://git-scm.com/docs/git-status#_output.
61
+ # The first two characters indicate the status of the file path (e.g. ' M')
62
+ # M App/script.sh
63
+ #
64
+ # If the file path is renamed, the original path is also included in the line (e.g. 'R ORIG_PATH -> PATH')
65
+ # R App/script.sh -> App/script_renamed.sh
66
+ #
67
+ path = line.match(/^.. (.* -> )?(.*)$/)[2]
68
+ path = path.delete_prefix('"').delete_suffix('"')
69
+ return path
70
+ end
71
+
57
72
  def self.description
58
73
  "Raises an exception if there are uncommitted git changes"
59
74
  end
@@ -83,7 +83,7 @@ module Fastlane
83
83
  optional: true,
84
84
  default_value: "ios",
85
85
  verify_block: proc do |value|
86
- UI.user_error!("The platform can only be ios, osx, or appletvos") unless %('osx', ios', 'appletvos').include?(value)
86
+ UI.user_error!("The platform can only be ios, osx, xros or appletvos") unless %('osx', ios', 'appletvos', 'xros').include?(value)
87
87
  end),
88
88
  FastlaneCore::ConfigItem.new(key: :initial_build_number,
89
89
  env_name: "INITIAL_BUILD_NUMBER",
@@ -169,10 +169,10 @@ module Fastlane
169
169
  end),
170
170
  FastlaneCore::ConfigItem.new(key: :platform,
171
171
  env_name: "FL_SET_CHANGELOG_PLATFORM",
172
- description: "The platform of the app (ios, appletvos, mac)",
172
+ description: "The platform of the app (ios, appletvos, xros, mac)",
173
173
  default_value: "ios",
174
174
  verify_block: proc do |value|
175
- available = ['ios', 'appletvos', 'mac']
175
+ available = ['ios', 'appletvos', 'xros', 'mac']
176
176
  UI.user_error!("Invalid platform '#{value}', must be #{available.join(', ')}") unless available.include?(value)
177
177
  end)
178
178
  ]
@@ -183,7 +183,7 @@ module Fastlane
183
183
  end
184
184
 
185
185
  def self.is_supported?(platform)
186
- [:ios, :appletvos, :mac].include?(platform)
186
+ [:ios, :appletvos, :xros, :mac].include?(platform)
187
187
  end
188
188
 
189
189
  def self.example_code
@@ -218,7 +218,9 @@ module Fastlane
218
218
  end
219
219
 
220
220
  def self.sh(*command, step_name: nil, log: true, error_callback: nil, &b)
221
- command_header = log ? step_name || Actions.shell_command_from_args(*command) : "shell command"
221
+ command_header = step_name
222
+ command_header ||= log ? Actions.shell_command_from_args(*command) : "shell command"
223
+
222
224
  Actions.execute_action(command_header) do
223
225
  Actions.sh_no_action(*command, log: log, error_callback: error_callback, &b)
224
226
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.221.0'.freeze
2
+ VERSION = '2.222.0'.freeze
3
3
  SUMMARY = "The easiest way to build and release mobile apps.".freeze
4
4
  DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
5
5
  MINIMUM_XCODE_RELEASE = "7.0".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.221.0
20
+ // Generated with fastlane 2.222.0
@@ -95,7 +95,7 @@ public protocol DeliverfileProtocol: AnyObject {
95
95
  /// Path to the app rating's config
96
96
  var appRatingConfigPath: String? { get }
97
97
 
98
- /// Extra information for the submission (e.g. compliance specifications, IDFA settings)
98
+ /// Extra information for the submission (e.g. compliance specifications)
99
99
  var submissionInformation: [String: Any]? { get }
100
100
 
101
101
  /// The ID of your App Store Connect team if you're in multiple teams
@@ -272,4 +272,4 @@ public extension DeliverfileProtocol {
272
272
 
273
273
  // Please don't remove the lines below
274
274
  // They are used to detect outdated files
275
- // FastlaneRunnerAPIVersion [0.9.125]
275
+ // FastlaneRunnerAPIVersion [0.9.127]
@@ -674,7 +674,7 @@ public func appledoc(input: [String],
674
674
  - resetRatings: Reset the summary rating when you release a new version of the application
675
675
  - priceTier: The price tier of this application
676
676
  - appRatingConfigPath: Path to the app rating's config
677
- - submissionInformation: Extra information for the submission (e.g. compliance specifications, IDFA settings)
677
+ - submissionInformation: Extra information for the submission (e.g. compliance specifications)
678
678
  - teamId: The ID of your App Store Connect team if you're in multiple teams
679
679
  - teamName: The name of your App Store Connect team if you're in multiple teams
680
680
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
@@ -3714,7 +3714,7 @@ public func deleteKeychain(name: OptionalConfigValue<String?> = .fastlaneDefault
3714
3714
  - resetRatings: Reset the summary rating when you release a new version of the application
3715
3715
  - priceTier: The price tier of this application
3716
3716
  - appRatingConfigPath: Path to the app rating's config
3717
- - submissionInformation: Extra information for the submission (e.g. compliance specifications, IDFA settings)
3717
+ - submissionInformation: Extra information for the submission (e.g. compliance specifications)
3718
3718
  - teamId: The ID of your App Store Connect team if you're in multiple teams
3719
3719
  - teamName: The name of your App Store Connect team if you're in multiple teams
3720
3720
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
@@ -4096,7 +4096,7 @@ public func downloadAppPrivacyDetailsFromAppStore(username: String,
4096
4096
  - appIdentifier: The bundle identifier of your app
4097
4097
  - teamId: The ID of your App Store Connect team if you're in multiple teams
4098
4098
  - teamName: The name of your App Store Connect team if you're in multiple teams
4099
- - platform: The app platform for dSYMs you wish to download (ios, appletvos)
4099
+ - platform: The app platform for dSYMs you wish to download (ios, xros, appletvos)
4100
4100
  - version: The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs
4101
4101
  - buildNumber: The app build_number for dSYMs you wish to download
4102
4102
  - minVersion: The minimum app version for dSYMs you wish to download
@@ -9707,7 +9707,7 @@ public func setBuildNumberRepository(useHgRevisionNumber: OptionalConfigValue<Bo
9707
9707
  - changelog: Changelog text that should be uploaded to App Store Connect
9708
9708
  - teamId: The ID of your App Store Connect team if you're in multiple teams
9709
9709
  - teamName: The name of your App Store Connect team if you're in multiple teams
9710
- - platform: The platform of the app (ios, appletvos, mac)
9710
+ - platform: The platform of the app (ios, appletvos, xros, mac)
9711
9711
 
9712
9712
  This is useful if you have only one changelog for all languages.
9713
9713
  You can store the changelog in `./changelog.txt` and it will automatically get loaded from there. This integration is useful if you support e.g. 10 languages and want to use the same "What's new"-text for all languages.
@@ -12540,7 +12540,7 @@ public func uploadSymbolsToSentry(apiHost: String = "https://app.getsentry.com/a
12540
12540
  - resetRatings: Reset the summary rating when you release a new version of the application
12541
12541
  - priceTier: The price tier of this application
12542
12542
  - appRatingConfigPath: Path to the app rating's config
12543
- - submissionInformation: Extra information for the submission (e.g. compliance specifications, IDFA settings)
12543
+ - submissionInformation: Extra information for the submission (e.g. compliance specifications)
12544
12544
  - teamId: The ID of your App Store Connect team if you're in multiple teams
12545
12545
  - teamName: The name of your App Store Connect team if you're in multiple teams
12546
12546
  - devPortalTeamId: The short ID of your Developer Portal team, if you're in multiple teams. Different from your iTC team ID!
@@ -13598,7 +13598,7 @@ public func xcov(workspace: OptionalConfigValue<String?> = .fastlaneDefault(nil)
13598
13598
  coverallsServiceJobId: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13599
13599
  coverallsRepoToken: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13600
13600
  xcconfig: OptionalConfigValue<String?> = .fastlaneDefault(nil),
13601
- ideFoundationPath: String = "/Applications/Xcode_15.0.1.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13601
+ ideFoundationPath: String = "/Applications/Xcode_15.4.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
13602
13602
  legacySupport: OptionalConfigValue<Bool> = .fastlaneDefault(false))
13603
13603
  {
13604
13604
  let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil)
@@ -13801,4 +13801,4 @@ public let snapshotfile: Snapshotfile = .init()
13801
13801
 
13802
13802
  // Please don't remove the lines below
13803
13803
  // They are used to detect outdated files
13804
- // FastlaneRunnerAPIVersion [0.9.178]
13804
+ // FastlaneRunnerAPIVersion [0.9.180]