fastlane 2.206.2 → 2.209.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +102 -102
  3. data/deliver/lib/deliver/options.rb +1 -2
  4. data/deliver/lib/deliver/runner.rb +31 -35
  5. data/deliver/lib/deliver/upload_price_tier.rb +3 -1
  6. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  7. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +1 -1
  8. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
  9. data/fastlane/lib/fastlane/actions/import_certificate.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/pod_push.rb +19 -1
  11. data/fastlane/lib/fastlane/actions/update_info_plist.rb +1 -1
  12. data/fastlane/lib/fastlane/actions/upload_symbols_to_sentry.rb +1 -1
  13. data/fastlane/lib/fastlane/actions/xcodebuild.rb +8 -2
  14. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  15. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  16. data/fastlane/lib/fastlane/setup/setup_ios.rb +1 -1
  17. data/fastlane/lib/fastlane/version.rb +1 -1
  18. data/fastlane/swift/Deliverfile.swift +1 -1
  19. data/fastlane/swift/DeliverfileProtocol.swift +2 -2
  20. data/fastlane/swift/Fastlane.swift +31 -11
  21. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/joshholtz.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  22. data/fastlane/swift/Gymfile.swift +1 -1
  23. data/fastlane/swift/GymfileProtocol.swift +1 -1
  24. data/fastlane/swift/Matchfile.swift +1 -1
  25. data/fastlane/swift/MatchfileProtocol.swift +5 -1
  26. data/fastlane/swift/Precheckfile.swift +1 -1
  27. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  28. data/fastlane/swift/Scanfile.swift +1 -1
  29. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  30. data/fastlane/swift/Screengrabfile.swift +1 -1
  31. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  32. data/fastlane/swift/Snapshotfile.swift +1 -1
  33. data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
  34. data/fastlane/swift/SocketClient.swift +1 -1
  35. data/fastlane/swift/formatting/Brewfile.lock.json +21 -16
  36. data/fastlane_core/lib/fastlane_core/cert_checker.rb +11 -12
  37. data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -0
  38. data/fastlane_core/lib/fastlane_core/project.rb +19 -2
  39. data/frameit/lib/frameit/device_types.rb +2 -0
  40. data/frameit/lib/frameit/frame_downloader.rb +1 -1
  41. data/match/lib/match/encryption.rb +3 -0
  42. data/match/lib/match/importer.rb +1 -0
  43. data/match/lib/match/module.rb +53 -1
  44. data/match/lib/match/nuke.rb +3 -40
  45. data/match/lib/match/options.rb +6 -0
  46. data/match/lib/match/runner.rb +11 -1
  47. data/match/lib/match/setup.rb +1 -1
  48. data/match/lib/match/spaceship_ensure.rb +4 -2
  49. data/match/lib/match/storage/gitlab/client.rb +102 -0
  50. data/match/lib/match/storage/gitlab/secure_file.rb +65 -0
  51. data/match/lib/match/storage/gitlab_secure_files.rb +182 -0
  52. data/match/lib/match/storage.rb +4 -0
  53. data/match/lib/match/table_printer.rb +2 -1
  54. data/match/lib/match/utils.rb +15 -2
  55. data/pilot/lib/pilot/build_manager.rb +2 -2
  56. data/scan/lib/scan/detect_values.rb +6 -0
  57. data/sigh/lib/sigh/download_all.rb +14 -2
  58. data/sigh/lib/sigh/module.rb +3 -1
  59. data/sigh/lib/sigh/runner.rb +7 -0
  60. data/snapshot/lib/snapshot/options.rb +1 -1
  61. data/snapshot/lib/snapshot/reports_generator.rb +1 -0
  62. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -1
  63. data/spaceship/lib/spaceship/connect_api/models/app.rb +4 -2
  64. data/spaceship/lib/spaceship/connect_api/models/profile.rb +4 -0
  65. data/spaceship/lib/spaceship/connect_api/response.rb +10 -6
  66. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +18 -8
  67. data/spaceship/lib/spaceship/tunes/tunes_client.rb +63 -2
  68. data/trainer/lib/trainer/junit_generator.rb +1 -1
  69. metadata +23 -22
  70. data/spaceship/lib/spaceship/connect_api/.response.rb.swp +0 -0
  71. data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8709bb6f807e965a0a9994a1fedefa13e0b92a05d9424308cd7cbcac25a5e02f
4
- data.tar.gz: f45bede96abcdeb1307634c05547123266ce8c3e4e8a2ca2d078c112df9c5c00
3
+ metadata.gz: 4365af5245c1e699a98517b1fd465039495211ef71e77a2469cc64fa68b242a8
4
+ data.tar.gz: eda45f4dbc2ac0f97440e60d5d6a6b0fa2509b69440ff8dc2330a565d52e1eb3
5
5
  SHA512:
6
- metadata.gz: 7051a939573b286ec7c73e050824b8683266f4560ef4ea4787d8b3f19c238130fa1ac1426e157f545655470a7be32bc99496d1ca813387fd9c37488342a7b0bd
7
- data.tar.gz: b84234e26b2fb02313170410c0e23c26729cc6f4cb35f899265eabec327f9a09cb0542f042f6cd99e9c5101132c257f256a53f4d7352a50a6c77376f90a0003b
6
+ metadata.gz: 42af3ec9ae30e4ce2410fca62ff972a1afa264d7fa97df000b81aa84367dfd95bb818725e4fc7e857532fab026cc8b347a407f25fc11c3cdc7926cc7376677fb
7
+ data.tar.gz: 5d640fabaa7093a42e8b6f70218654a38dc95cc04820026b1616956534f2cc35b458dfe39f4e93653ef79f5718278c84734f16cf55af4cf4c523384b10b490e2
data/README.md CHANGED
@@ -35,75 +35,29 @@ 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='olivier-halligon'>
39
- <a href='https://github.com/AliSoftware'>
40
- <img src='https://github.com/AliSoftware.png' width='140px;'>
41
- </a>
42
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
43
- </td>
44
- <td id='maksym-grebenets'>
45
- <a href='https://github.com/mgrebenets'>
46
- <img src='https://github.com/mgrebenets.png' width='140px;'>
47
- </a>
48
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
49
- </td>
50
38
  <td id='iulian-onofrei'>
51
39
  <a href='https://github.com/revolter'>
52
40
  <img src='https://github.com/revolter.png' width='140px;'>
53
41
  </a>
54
42
  <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
55
43
  </td>
56
- <td id='satoshi-namai'>
57
- <a href='https://github.com/ainame'>
58
- <img src='https://github.com/ainame.png' width='140px;'>
59
- </a>
60
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
61
- </td>
62
- <td id='stefan-natchev'>
63
- <a href='https://github.com/snatchev'>
64
- <img src='https://github.com/snatchev.png' width='140px;'>
65
- </a>
66
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</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;'>
73
- </a>
74
- <h4 align='center'>Jimmy Dee</h4>
75
- </td>
76
- <td id='andrew-mcburney'>
77
- <a href='https://github.com/armcburney'>
78
- <img src='https://github.com/armcburney.png' width='140px;'>
79
- </a>
80
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
81
- </td>
82
- <td id='luka-mirosevic'>
83
- <a href='https://github.com/lmirosevic'>
84
- <img src='https://github.com/lmirosevic.png' width='140px;'>
85
- </a>
86
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
87
- </td>
88
- <td id='jorge-revuelta-h'>
89
- <a href='https://github.com/minuscorp'>
90
- <img src='https://github.com/minuscorp.png' width='140px;'>
44
+ <td id='manish-rathi'>
45
+ <a href='https://github.com/crazymanish'>
46
+ <img src='https://github.com/crazymanish.png' width='140px;'>
91
47
  </a>
92
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
93
49
  </td>
94
- <td id='aaron-brager'>
95
- <a href='https://github.com/getaaron'>
96
- <img src='https://github.com/getaaron.png' width='140px;'>
50
+ <td id='olivier-halligon'>
51
+ <a href='https://github.com/AliSoftware'>
52
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
97
53
  </a>
98
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
99
55
  </td>
100
- </tr>
101
- <tr>
102
- <td id='joshua-liebowitz'>
103
- <a href='https://github.com/taquitos'>
104
- <img src='https://github.com/taquitos.png' width='140px;'>
56
+ <td id='łukasz-grabowski'>
57
+ <a href='https://github.com/lucgrabowski'>
58
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
105
59
  </a>
106
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
60
+ <h4 align='center'>Łukasz Grabowski</h4>
107
61
  </td>
108
62
  <td id='danielle-tomlinson'>
109
63
  <a href='https://github.com/endocrimes'>
@@ -111,43 +65,51 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
111
65
  </a>
112
66
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
113
67
  </td>
114
- <td id='jérôme-lacoste'>
115
- <a href='https://github.com/lacostej'>
116
- <img src='https://github.com/lacostej.png' width='140px;'>
117
- </a>
118
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
119
- </td>
68
+ </tr>
69
+ <tr>
120
70
  <td id='josh-holtz'>
121
71
  <a href='https://github.com/joshdholtz'>
122
72
  <img src='https://github.com/joshdholtz.png' width='140px;'>
123
73
  </a>
124
74
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
125
75
  </td>
76
+ <td id='matthew-ellis'>
77
+ <a href='https://github.com/matthewellis'>
78
+ <img src='https://github.com/matthewellis.png' width='140px;'>
79
+ </a>
80
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
81
+ </td>
82
+ <td id='fumiya-nakamura'>
83
+ <a href='https://github.com/nafu'>
84
+ <img src='https://github.com/nafu.png' width='140px;'>
85
+ </a>
86
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
87
+ </td>
126
88
  <td id='jan-piotrowski'>
127
89
  <a href='https://github.com/janpio'>
128
90
  <img src='https://github.com/janpio.png' width='140px;'>
129
91
  </a>
130
92
  <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
131
93
  </td>
132
- </tr>
133
- <tr>
134
- <td id='max-ott'>
135
- <a href='https://github.com/max-ott'>
136
- <img src='https://github.com/max-ott.png' width='140px;'>
94
+ <td id='manu-wallner'>
95
+ <a href='https://github.com/milch'>
96
+ <img src='https://github.com/milch.png' width='140px;'>
137
97
  </a>
138
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
98
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
139
99
  </td>
140
- <td id='daniel-jankowski'>
141
- <a href='https://github.com/mollyIV'>
142
- <img src='https://github.com/mollyIV.png' width='140px;'>
100
+ </tr>
101
+ <tr>
102
+ <td id='kohki-miki'>
103
+ <a href='https://github.com/giginet'>
104
+ <img src='https://github.com/giginet.png' width='140px;'>
143
105
  </a>
144
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
106
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
145
107
  </td>
146
- <td id='roger-oba'>
147
- <a href='https://github.com/rogerluan'>
148
- <img src='https://github.com/rogerluan.png' width='140px;'>
108
+ <td id='jimmy-dee'>
109
+ <a href='https://github.com/jdee'>
110
+ <img src='https://github.com/jdee.png' width='140px;'>
149
111
  </a>
150
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
112
+ <h4 align='center'>Jimmy Dee</h4>
151
113
  </td>
152
114
  <td id='helmut-januschka'>
153
115
  <a href='https://github.com/hjanuschka'>
@@ -155,52 +117,90 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
155
117
  </a>
156
118
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
157
119
  </td>
158
- <td id='fumiya-nakamura'>
159
- <a href='https://github.com/nafu'>
160
- <img src='https://github.com/nafu.png' width='140px;'>
120
+ <td id='satoshi-namai'>
121
+ <a href='https://github.com/ainame'>
122
+ <img src='https://github.com/ainame.png' width='140px;'>
161
123
  </a>
162
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
125
+ </td>
126
+ <td id='andrew-mcburney'>
127
+ <a href='https://github.com/armcburney'>
128
+ <img src='https://github.com/armcburney.png' width='140px;'>
129
+ </a>
130
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
163
131
  </td>
164
132
  </tr>
165
133
  <tr>
166
- <td id='łukasz-grabowski'>
167
- <a href='https://github.com/lucgrabowski'>
168
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
134
+ <td id='stefan-natchev'>
135
+ <a href='https://github.com/snatchev'>
136
+ <img src='https://github.com/snatchev.png' width='140px;'>
169
137
  </a>
170
- <h4 align='center'>Łukasz Grabowski</h4>
138
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
171
139
  </td>
172
- <td id='manu-wallner'>
173
- <a href='https://github.com/milch'>
174
- <img src='https://github.com/milch.png' width='140px;'>
140
+ <td id='luka-mirosevic'>
141
+ <a href='https://github.com/lmirosevic'>
142
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
175
143
  </a>
176
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
177
145
  </td>
178
- <td id='matthew-ellis'>
179
- <a href='https://github.com/matthewellis'>
180
- <img src='https://github.com/matthewellis.png' width='140px;'>
146
+ <td id='maksym-grebenets'>
147
+ <a href='https://github.com/mgrebenets'>
148
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
181
149
  </a>
182
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
150
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
183
151
  </td>
184
- <td id='manish-rathi'>
185
- <a href='https://github.com/crazymanish'>
186
- <img src='https://github.com/crazymanish.png' width='140px;'>
152
+ <td id='jérôme-lacoste'>
153
+ <a href='https://github.com/lacostej'>
154
+ <img src='https://github.com/lacostej.png' width='140px;'>
187
155
  </a>
188
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
189
157
  </td>
190
- <td id='kohki-miki'>
191
- <a href='https://github.com/giginet'>
192
- <img src='https://github.com/giginet.png' width='140px;'>
158
+ <td id='jorge-revuelta-h'>
159
+ <a href='https://github.com/minuscorp'>
160
+ <img src='https://github.com/minuscorp.png' width='140px;'>
193
161
  </a>
194
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
195
163
  </td>
196
164
  </tr>
197
165
  <tr>
166
+ <td id='roger-oba'>
167
+ <a href='https://github.com/rogerluan'>
168
+ <img src='https://github.com/rogerluan.png' width='140px;'>
169
+ </a>
170
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
171
+ </td>
198
172
  <td id='felix-krause'>
199
173
  <a href='https://github.com/KrauseFx'>
200
174
  <img src='https://github.com/KrauseFx.png' width='140px;'>
201
175
  </a>
202
176
  <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
203
177
  </td>
178
+ <td id='joshua-liebowitz'>
179
+ <a href='https://github.com/taquitos'>
180
+ <img src='https://github.com/taquitos.png' width='140px;'>
181
+ </a>
182
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
183
+ </td>
184
+ <td id='aaron-brager'>
185
+ <a href='https://github.com/getaaron'>
186
+ <img src='https://github.com/getaaron.png' width='140px;'>
187
+ </a>
188
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
189
+ </td>
190
+ <td id='daniel-jankowski'>
191
+ <a href='https://github.com/mollyIV'>
192
+ <img src='https://github.com/mollyIV.png' width='140px;'>
193
+ </a>
194
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
195
+ </td>
196
+ </tr>
197
+ <tr>
198
+ <td id='max-ott'>
199
+ <a href='https://github.com/max-ott'>
200
+ <img src='https://github.com/max-ott.png' width='140px;'>
201
+ </a>
202
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
203
+ </td>
204
204
  </table>
205
205
 
206
206
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -164,8 +164,7 @@ module Deliver
164
164
  default_value: false),
165
165
  FastlaneCore::ConfigItem.new(key: :sync_screenshots,
166
166
  env_name: "DELIVER_SYNC_SCREENSHOTS",
167
- description: "Sync screenshots with local ones. This is currently beta option" \
168
- "so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well",
167
+ description: "Sync screenshots with local ones. This is currently beta option so set true to 'FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS' environment variable as well",
169
168
  type: Boolean,
170
169
  default_value: false),
171
170
  FastlaneCore::ConfigItem.new(key: :submit_for_review,
@@ -165,35 +165,33 @@ module Deliver
165
165
  def verify_binary
166
166
  UI.message("Verifying binary with App Store Connect")
167
167
 
168
- verify_ipa = options[:ipa]
169
- verify_pkg = options[:pkg]
170
-
171
- # 2020-01-27
172
- # Only verify platform if if both ipa and pkg exists (for backwards support)
173
- if verify_ipa && verify_pkg
174
- verify_ipa = ["ios", "appletvos"].include?(options[:platform])
175
- verify_pkg = options[:platform] == "osx"
176
- end
168
+ ipa_path = options[:ipa]
169
+ pkg_path = options[:pkg]
170
+
171
+ platform = options[:platform]
172
+ transporter = transporter_for_selected_team
177
173
 
178
- if verify_ipa
174
+ case platform
175
+ when "ios", "appletvos"
179
176
  package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
180
177
  app_id: Deliver.cache[:app].id,
181
- ipa_path: options[:ipa],
178
+ ipa_path: ipa_path,
182
179
  package_path: "/tmp",
183
- platform: options[:platform]
180
+ platform: platform
184
181
  )
185
- elsif verify_pkg
182
+ result = transporter.verify(package_path: package_path)
183
+ when "osx"
186
184
  package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
187
185
  app_id: Deliver.cache[:app].id,
188
- pkg_path: options[:pkg],
186
+ pkg_path: pkg_path,
189
187
  package_path: "/tmp",
190
- platform: options[:platform]
188
+ platform: platform
191
189
  )
190
+ result = transporter.verify(package_path: package_path)
191
+ else
192
+ UI.user_error!("No suitable file found for verify for platform: #{options[:platform]}")
192
193
  end
193
194
 
194
- transporter = transporter_for_selected_team
195
- result = transporter.verify(package_path: package_path)
196
-
197
195
  unless result
198
196
  transporter_errors = transporter.displayable_errors
199
197
  UI.user_error!("Error verifying the binary file: \n #{transporter_errors}")
@@ -204,35 +202,33 @@ module Deliver
204
202
  def upload_binary
205
203
  UI.message("Uploading binary to App Store Connect")
206
204
 
207
- upload_ipa = options[:ipa]
208
- upload_pkg = options[:pkg]
205
+ ipa_path = options[:ipa]
206
+ pkg_path = options[:pkg]
209
207
 
210
- # 2020-01-27
211
- # Only verify platform if if both ipa and pkg exists (for backwards support)
212
- if upload_ipa && upload_pkg
213
- upload_ipa = ["ios", "appletvos"].include?(options[:platform])
214
- upload_pkg = options[:platform] == "osx"
215
- end
208
+ platform = options[:platform]
209
+ transporter = transporter_for_selected_team
216
210
 
217
- if upload_ipa
211
+ case platform
212
+ when "ios", "appletvos"
218
213
  package_path = FastlaneCore::IpaUploadPackageBuilder.new.generate(
219
214
  app_id: Deliver.cache[:app].id,
220
- ipa_path: options[:ipa],
215
+ ipa_path: ipa_path,
221
216
  package_path: "/tmp",
222
- platform: options[:platform]
217
+ platform: platform
223
218
  )
224
- elsif upload_pkg
219
+ result = transporter.upload(package_path: package_path, asset_path: ipa_path)
220
+ when "osx"
225
221
  package_path = FastlaneCore::PkgUploadPackageBuilder.new.generate(
226
222
  app_id: Deliver.cache[:app].id,
227
- pkg_path: options[:pkg],
223
+ pkg_path: pkg_path,
228
224
  package_path: "/tmp",
229
- platform: options[:platform]
225
+ platform: platform
230
226
  )
227
+ result = transporter.upload(package_path: package_path, asset_path: pkg_path)
228
+ else
229
+ UI.user_error!("No suitable file found for upload for platform: #{options[:platform]}")
231
230
  end
232
231
 
233
- transporter = transporter_for_selected_team
234
- result = transporter.upload(package_path: package_path, asset_path: upload_ipa || upload_pkg)
235
-
236
232
  unless result
237
233
  transporter_errors = transporter.displayable_errors
238
234
  UI.user_error!("Error uploading ipa file: \n #{transporter_errors}")
@@ -12,7 +12,9 @@ module Deliver
12
12
  app = Deliver.cache[:app]
13
13
 
14
14
  attributes = {}
15
- territory_ids = []
15
+
16
+ # Check App update method to understand how to use territory_ids.
17
+ territory_ids = nil # nil won't update app's territory_ids, empty array would remove app from sale.
16
18
 
17
19
  # As of 2020-09-14:
18
20
  # Official App Store Connect does not have an endpoint to get app prices for an app
@@ -145,7 +145,7 @@ module Deliver
145
145
  if duplicate
146
146
  UI.message("Previous uploaded. Skipping '#{screenshot.path}'...")
147
147
  else
148
- UI.verbose("Queued uplaod sceeenshot job for #{localization.locale} #{app_screenshot_set.screenshot_display_type} #{screenshot.path}")
148
+ UI.verbose("Queued upload sceeenshot job for #{localization.locale} #{app_screenshot_set.screenshot_display_type} #{screenshot.path}")
149
149
  worker.enqueue(UploadScreenshotJob.new(app_screenshot_set, screenshot.path))
150
150
  number_of_screenshots_per_set[app_screenshot_set] += 1
151
151
  end
@@ -141,7 +141,7 @@ module Fastlane
141
141
  end),
142
142
  FastlaneCore::ConfigItem.new(key: :merge_commit_filtering,
143
143
  env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_MERGE_COMMIT_FILTERING',
144
- description: "Controls inclusion of merge commits when collecting the changelog. Valid values: #{GIT_MERGE_COMMIT_FILTERING_OPTIONS.map { |o| "`:#{o}`" }.join(', ')}",
144
+ description: "Controls inclusion of merge commits when collecting the changelog. Valid values: #{GIT_MERGE_COMMIT_FILTERING_OPTIONS.map { |o| "'#{o}'" }.join(', ')}",
145
145
  optional: true,
146
146
  default_value: 'include_merges',
147
147
  verify_block: proc do |value|
@@ -60,7 +60,7 @@ Here is a nice gif, that shows _frameit_ in action:
60
60
  <h5 align="center">The <em>frameit</em> 2.0 update was kindly sponsored by <a href="https://mindnode.com/">MindNode</a>, seen in the screenshots above.</h5>
61
61
 
62
62
 
63
- The first time that _frameit_ is executed the frames will be downloaded automatically. Originally the frames are coming from [Facebook frameset](http://facebook.design/devices) and they are kept on [this repo](https://github.com/fastlane/frameit-frames).
63
+ The first time that _frameit_ is executed the frames will be downloaded automatically. Originally the frames are coming from [Facebook frameset](https://design.facebook.com/toolsandresources/devices/) and they are kept on [this repo](https://github.com/fastlane/frameit-frames).
64
64
 
65
65
  More information about this process and how to update the frames can be found [here](https://github.com/fastlane/fastlane/tree/master/frameit/frames_generator)
66
66
 
@@ -58,7 +58,7 @@ module Fastlane
58
58
 
59
59
  def self.example_code
60
60
  [
61
- 'import_certificate(certificate_path: "certs/AppleWWDRCA.cer")',
61
+ 'import_certificate(certificate_path: "certs/AppleWWDRCA6.cer")',
62
62
  'import_certificate(
63
63
  certificate_path: "certs/dist.p12",
64
64
  certificate_password: ENV["CERTIFICATE_PASSWORD"] || "default"
@@ -59,6 +59,14 @@ module Fastlane
59
59
  command << "--synchronous"
60
60
  end
61
61
 
62
+ if params[:no_overwrite]
63
+ command << "--no-overwrite"
64
+ end
65
+
66
+ if params[:local_only]
67
+ command << "--local-only"
68
+ end
69
+
62
70
  result = Actions.sh(command.join(' '))
63
71
  UI.success("Successfully pushed Podspec ⬆️ ")
64
72
  return result
@@ -143,7 +151,17 @@ module Fastlane
143
151
  description: "If validation depends on other recently pushed pods, synchronize",
144
152
  optional: true,
145
153
  type: Boolean,
146
- env_name: "FL_POD_PUSH_SYNCHRONOUS")
154
+ env_name: "FL_POD_PUSH_SYNCHRONOUS"),
155
+ FastlaneCore::ConfigItem.new(key: :no_overwrite,
156
+ description: "Disallow pushing that would overwrite an existing spec",
157
+ optional: true,
158
+ type: Boolean,
159
+ env_name: "FL_POD_PUSH_NO_OVERWRITE"),
160
+ FastlaneCore::ConfigItem.new(key: :local_only,
161
+ description: "Does not perform the step of pushing REPO to its remote",
162
+ optional: true,
163
+ type: Boolean,
164
+ env_name: "FL_POD_PUSH_LOCAL_ONLY")
147
165
  ]
148
166
  end
149
167
 
@@ -80,7 +80,7 @@ module Fastlane
80
80
  description: "Path to info plist",
81
81
  optional: true,
82
82
  verify_block: proc do |value|
83
- UI.user_error!("Invalid plist file") unless value[-6..-1].casecmp(".plist").zero?
83
+ UI.user_error!("Invalid plist file") unless value.downcase.end_with?(".plist")
84
84
  end),
85
85
  FastlaneCore::ConfigItem.new(key: :scheme,
86
86
  env_name: "FL_UPDATE_PLIST_APP_SCHEME",
@@ -48,7 +48,7 @@ module Fastlane
48
48
  upload_dsym(resource, dsym)
49
49
  end
50
50
 
51
- # Return uplaoded dSYM paths
51
+ # Return uploaded dSYM paths
52
52
  uploaded_paths
53
53
  end
54
54
 
@@ -267,10 +267,11 @@ module Fastlane
267
267
 
268
268
  output_result = ""
269
269
 
270
+ override_architecture_prefix = params[:xcodebuild_architecture] ? "arch -#{params[:xcodebuild_architecture]} " : ""
270
271
  # In some cases the simulator is not booting up in time
271
272
  # One way to solve it is to try to rerun it for one more time
272
273
  begin
273
- output_result = Actions.sh "set -o pipefail && xcodebuild #{xcodebuild_args} #{pipe_command}"
274
+ output_result = Actions.sh "set -o pipefail && #{override_architecture_prefix}xcodebuild #{xcodebuild_args} #{pipe_command}"
274
275
  rescue => ex
275
276
  exit_status = $?.exitstatus
276
277
 
@@ -383,8 +384,9 @@ module Fastlane
383
384
  ['scheme', 'The scheme to build'],
384
385
  ['build_settings', 'Hash of additional build information'],
385
386
  ['xcargs', 'Pass additional xcodebuild options'],
386
- ['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
387
387
  ['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
388
+ ['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
389
+ ['xcodebuild_architecture', 'Allows to set the architecture that `xcodebuild` is run with, for example to force it to run under Rosetta on an Apple Silicon mac'],
388
390
  ['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
389
391
  ['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
390
392
  ['xcpretty_utf', 'Specifies xcpretty should use utf8 when reporting builds. This has no effect when raw_buildlog is specified.']
@@ -437,6 +439,7 @@ module Fastlane
437
439
  ['build_settings', 'Hash of additional build information'],
438
440
  ['xcargs', 'Pass additional xcodebuild options'],
439
441
  ['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
442
+ ['xcodebuild_architecture', 'Allows to set the architecture that `xcodebuild` is run with, for example to force it to run under Rosetta on an Apple Silicon mac'],
440
443
  ['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
441
444
  ['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
442
445
  ['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
@@ -529,6 +532,7 @@ module Fastlane
529
532
  ['build_settings', 'Hash of additional build information'],
530
533
  ['xcargs', 'Pass additional xcodebuild options'],
531
534
  ['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
535
+ ['xcodebuild_architecture', 'Allows to set the architecture that `xcodebuild` is run with, for example to force it to run under Rosetta on an Apple Silicon mac'],
532
536
  ['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
533
537
  ['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
534
538
  ['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
@@ -571,6 +575,7 @@ module Fastlane
571
575
  ['build_settings', 'Hash of additional build information'],
572
576
  ['xcargs', 'Pass additional xcodebuild options'],
573
577
  ['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
578
+ ['xcodebuild_architecture', 'Allows to set the architecture that `xcodebuild` is run with, for example to force it to run under Rosetta on an Apple Silicon mac'],
574
579
  ['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
575
580
  ['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
576
581
  ['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
@@ -621,6 +626,7 @@ module Fastlane
621
626
  ['destination_timeout', 'The timeout for connecting to the simulator, in seconds'],
622
627
  ['enable_code_coverage', 'Turn code coverage on or off when testing. eg. true|false. Requires Xcode 7+'],
623
628
  ['output_style', 'Set the output format to one of: :standard (Colored UTF8 output, default), :basic (black & white ASCII output)'],
629
+ ['xcodebuild_architecture', 'Allows to set the architecture that `xcodebuild` is run with, for example to force it to run under Rosetta on an Apple Silicon mac'],
624
630
  ['buildlog_path', 'The path where the xcodebuild.log will be created, by default it is created in ~/Library/Logs/fastlane/xcbuild'],
625
631
  ['raw_buildlog', 'Set to true to see xcodebuild raw output. Default value is false'],
626
632
  ['xcpretty_output', 'specifies the output type for xcpretty. eg. \'test\', or \'simple\''],
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.required_ruby_version = '>= 2.5'
19
+ spec.required_ruby_version = '>= 2.6'
20
20
 
21
21
  # Don't add a dependency to fastlane or fastlane_re
22
22
  # since this would cause a circular dependency
@@ -3,7 +3,7 @@ require:
3
3
  - rubocop/require_tools
4
4
  - rubocop-performance
5
5
  AllCops:
6
- TargetRubyVersion: 2.5
6
+ TargetRubyVersion: 2.6
7
7
  NewCops: enable
8
8
  Include:
9
9
  - "**/*.rb"
@@ -18,6 +18,10 @@ AllCops:
18
18
  - "**/lib/assets/MatchfileTemplate"
19
19
  - "**/spec/fixtures/broken_files/broken_file.rb"
20
20
  - "**/*.provisionprofile"
21
+ Lint/ErbNewArguments:
22
+ Enabled: false
23
+ Style/SlicingWithRange:
24
+ Enabled: false
21
25
  Style/MultipleComparison:
22
26
  Enabled: false
23
27
  Style/PercentLiteralDelimiters:
@@ -387,7 +387,7 @@ module Fastlane
387
387
  def verify_app_exists_itc!
388
388
  UI.user_error!("No app identifier provided") if self.app_identifier.to_s.length == 0
389
389
  UI.message("Checking if the app '#{self.app_identifier}' exists on App Store Connect...")
390
- app = Spaceship::Tunes::Application.find(self.app_identifier)
390
+ app = Spaceship::ConnectAPI::App.find(self.app_identifier)
391
391
  if app.nil?
392
392
  UI.error("Looks like the app '#{self.app_identifier}' isn't available on #{'App Store Connect'.bold.underline}")
393
393
  UI.error("for the team ID '#{self.itc_team_id}' on Apple ID '#{self.user}'")
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
- VERSION = '2.206.2'.freeze
2
+ VERSION = '2.209.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 = '1.12.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.206.2
20
+ // Generated with fastlane 2.209.0