fastlane 2.213.0 โ†’ 2.215.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +94 -94
  3. data/deliver/lib/deliver/app_screenshot.rb +13 -10
  4. data/deliver/lib/deliver/submit_for_review.rb +13 -0
  5. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  6. data/fastlane/lib/assets/custom_action_template.rb +18 -12
  7. data/fastlane/lib/fastlane/actions/docs/build_app.md +2 -2
  8. data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +8 -8
  9. data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +3 -3
  10. data/fastlane/lib/fastlane/actions/docs/get_push_certificate.md +2 -2
  11. data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +6 -4
  12. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +1 -1
  13. data/fastlane/lib/fastlane/actions/download_universal_apk_from_google_play.rb +124 -0
  14. data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +4 -0
  15. data/fastlane/lib/fastlane/helper/xcodes_helper.rb +0 -3
  16. data/fastlane/lib/fastlane/new_action.rb +1 -1
  17. data/fastlane/lib/fastlane/plugins/plugin_info_collector.rb +3 -3
  18. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -2
  19. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +5 -1
  20. data/fastlane/lib/fastlane/plugins/template/lib/fastlane/plugin/%plugin_name%/helper/%plugin_name%_helper.rb.erb +1 -1
  21. data/fastlane/lib/fastlane/version.rb +2 -2
  22. data/fastlane/swift/Deliverfile.swift +1 -1
  23. data/fastlane/swift/DeliverfileProtocol.swift +1 -1
  24. data/fastlane/swift/Fastlane.swift +79 -4
  25. data/fastlane/swift/Gymfile.swift +1 -1
  26. data/fastlane/swift/GymfileProtocol.swift +1 -1
  27. data/fastlane/swift/Matchfile.swift +1 -1
  28. data/fastlane/swift/MatchfileProtocol.swift +5 -1
  29. data/fastlane/swift/Precheckfile.swift +1 -1
  30. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  31. data/fastlane/swift/Scanfile.swift +1 -1
  32. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  33. data/fastlane/swift/Screengrabfile.swift +1 -1
  34. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  35. data/fastlane/swift/Snapshotfile.swift +1 -1
  36. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  37. data/fastlane/swift/formatting/Brewfile.lock.json +28 -18
  38. data/fastlane_core/lib/fastlane_core/cert_checker.rb +1 -1
  39. data/frameit/lib/frameit/device_types.rb +1 -1
  40. data/gym/lib/gym/generators/build_command_generator.rb +1 -1
  41. data/match/lib/match/change_password.rb +3 -9
  42. data/match/lib/match/commands_generator.rb +3 -6
  43. data/match/lib/match/encryption.rb +1 -1
  44. data/match/lib/match/importer.rb +3 -31
  45. data/match/lib/match/migrate.rb +6 -2
  46. data/match/lib/match/nuke.rb +3 -25
  47. data/match/lib/match/options.rb +7 -0
  48. data/match/lib/match/runner.rb +5 -32
  49. data/match/lib/match/setup.rb +1 -1
  50. data/match/lib/match/storage/gitlab/client.rb +40 -14
  51. data/match/lib/match/storage/gitlab_secure_files.rb +7 -2
  52. data/match/lib/match/storage/s3_storage.rb +6 -0
  53. data/match/lib/match/storage.rb +56 -5
  54. data/scan/lib/scan/test_command_generator.rb +1 -1
  55. data/snapshot/lib/snapshot/test_command_generator.rb +1 -1
  56. data/spaceship/lib/spaceship/client.rb +0 -1
  57. data/spaceship/lib/spaceship/connect_api/api_client.rb +19 -1
  58. data/spaceship/lib/spaceship/connect_api/models/app.rb +3 -2
  59. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +15 -9
  60. data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +5 -0
  61. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -0
  62. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  63. data/spaceship/lib/spaceship/connect_api/models/user.rb +38 -0
  64. data/spaceship/lib/spaceship/connect_api/models/user_invitation.rb +5 -15
  65. data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +8 -2
  66. data/spaceship/lib/spaceship/connect_api/users/users.rb +34 -0
  67. data/supply/lib/supply/client.rb +72 -20
  68. data/supply/lib/supply/generated_universal_apk.rb +24 -0
  69. data/supply/lib/supply/image_listing.rb +15 -0
  70. data/supply/lib/supply/options.rb +5 -0
  71. data/supply/lib/supply/setup.rb +1 -1
  72. data/supply/lib/supply/uploader.rb +32 -5
  73. data/supply/lib/supply.rb +2 -0
  74. metadata +285 -274
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4ac7eee0c8810536692c5ffca62c0f0924595f223d889affb732cb72f98e64be
4
- data.tar.gz: 6d91512766cfd352f98cfa4fc905f366bd4c6eefe8ddf680ddddb1e222827120
3
+ metadata.gz: ca392430fd8ccee923fa73986787d896274816cbdca6e7245346f87c8836bb12
4
+ data.tar.gz: ff6be4a15bc4afba8d97048c2866c1d7ae7b36fdb382420c6ff0ab805a760d98
5
5
  SHA512:
6
- metadata.gz: e7ebfc7fcd8d9883e053fe32e277a31aa70b98082532efdd310d7bd4b6e44976e4445e345c980f41b19baaa31ba6dcff626af80299393d97f83e45ff8f2c4558
7
- data.tar.gz: eec9c6e744bced6eacc16bd85c2cf86cc2e5cb920e2c031add3a0d5690b9e6b675b68d5bcb89db5cef48ec1367b2d6e610ac83eb9271c98e08f6ad0ba80225d8
6
+ metadata.gz: b4c419b1a38f052585887569f8f7bf9e59f22cf85146e7df7fd2d57e4d832bb70b091fb5f6391b979a15369559cd6481566e58e9ccaa04d9b9e31b33bc86780d
7
+ data.tar.gz: 4c11e7e47e3831a3b05ef14693fabc1c3df8e62af609d8021479b3044027173e99410aefd81a0752b5d5d6046afb49556e50a7fe77224870e914ce4f6c970d35
data/README.md CHANGED
@@ -35,44 +35,76 @@ 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='daniel-jankowski'>
39
- <a href='https://github.com/mollyIV'>
40
- <img src='https://github.com/mollyIV.png' width='140px;'>
38
+ <td id='matthew-ellis'>
39
+ <a href='https://github.com/matthewellis'>
40
+ <img src='https://github.com/matthewellis.png' width='140px;'>
41
41
  </a>
42
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
43
43
  </td>
44
- <td id='jan-piotrowski'>
45
- <a href='https://github.com/janpio'>
46
- <img src='https://github.com/janpio.png' width='140px;'>
44
+ <td id='jimmy-dee'>
45
+ <a href='https://github.com/jdee'>
46
+ <img src='https://github.com/jdee.png' width='140px;'>
47
47
  </a>
48
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
48
+ <h4 align='center'>Jimmy Dee</h4>
49
49
  </td>
50
- <td id='josh-holtz'>
51
- <a href='https://github.com/joshdholtz'>
52
- <img src='https://github.com/joshdholtz.png' width='140px;'>
50
+ <td id='roger-oba'>
51
+ <a href='https://github.com/rogerluan'>
52
+ <img src='https://github.com/rogerluan.png' width='140px;'>
53
53
  </a>
54
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
55
55
  </td>
56
- <td id='manu-wallner'>
57
- <a href='https://github.com/milch'>
58
- <img src='https://github.com/milch.png' width='140px;'>
56
+ <td id='fumiya-nakamura'>
57
+ <a href='https://github.com/nafu'>
58
+ <img src='https://github.com/nafu.png' width='140px;'>
59
59
  </a>
60
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
61
61
  </td>
62
- <td id='kohki-miki'>
63
- <a href='https://github.com/giginet'>
64
- <img src='https://github.com/giginet.png' width='140px;'>
62
+ <td id='satoshi-namai'>
63
+ <a href='https://github.com/ainame'>
64
+ <img src='https://github.com/ainame.png' width='140px;'>
65
65
  </a>
66
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
67
67
  </td>
68
68
  </tr>
69
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>
76
+ <td id='daniel-jankowski'>
77
+ <a href='https://github.com/mollyIV'>
78
+ <img src='https://github.com/mollyIV.png' width='140px;'>
79
+ </a>
80
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
81
+ </td>
82
+ <td id='ล‚ukasz-grabowski'>
83
+ <a href='https://github.com/lucgrabowski'>
84
+ <img src='https://github.com/lucgrabowski.png' width='140px;'>
85
+ </a>
86
+ <h4 align='center'>ลukasz Grabowski</h4>
87
+ </td>
70
88
  <td id='jรฉrรดme-lacoste'>
71
89
  <a href='https://github.com/lacostej'>
72
90
  <img src='https://github.com/lacostej.png' width='140px;'>
73
91
  </a>
74
92
  <h4 align='center'><a href='https://twitter.com/lacostej'>Jรฉrรดme Lacoste</a></h4>
75
93
  </td>
94
+ <td id='manish-rathi'>
95
+ <a href='https://github.com/crazymanish'>
96
+ <img src='https://github.com/crazymanish.png' width='140px;'>
97
+ </a>
98
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
99
+ </td>
100
+ </tr>
101
+ <tr>
102
+ <td id='stefan-natchev'>
103
+ <a href='https://github.com/snatchev'>
104
+ <img src='https://github.com/snatchev.png' width='140px;'>
105
+ </a>
106
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
107
+ </td>
76
108
  <td id='olivier-halligon'>
77
109
  <a href='https://github.com/AliSoftware'>
78
110
  <img src='https://github.com/AliSoftware.png' width='140px;'>
@@ -85,43 +117,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
85
117
  </a>
86
118
  <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
87
119
  </td>
88
- <td id='roger-oba'>
89
- <a href='https://github.com/rogerluan'>
90
- <img src='https://github.com/rogerluan.png' width='140px;'>
120
+ <td id='josh-holtz'>
121
+ <a href='https://github.com/joshdholtz'>
122
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
91
123
  </a>
92
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
93
125
  </td>
94
- <td id='luka-mirosevic'>
95
- <a href='https://github.com/lmirosevic'>
96
- <img src='https://github.com/lmirosevic.png' width='140px;'>
126
+ <td id='aaron-brager'>
127
+ <a href='https://github.com/getaaron'>
128
+ <img src='https://github.com/getaaron.png' width='140px;'>
97
129
  </a>
98
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
99
131
  </td>
100
132
  </tr>
101
133
  <tr>
102
- <td id='ล‚ukasz-grabowski'>
103
- <a href='https://github.com/lucgrabowski'>
104
- <img src='https://github.com/lucgrabowski.png' width='140px;'>
134
+ <td id='manu-wallner'>
135
+ <a href='https://github.com/milch'>
136
+ <img src='https://github.com/milch.png' width='140px;'>
105
137
  </a>
106
- <h4 align='center'>ลukasz Grabowski</h4>
138
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
107
139
  </td>
108
- <td id='matthew-ellis'>
109
- <a href='https://github.com/matthewellis'>
110
- <img src='https://github.com/matthewellis.png' width='140px;'>
140
+ <td id='felix-krause'>
141
+ <a href='https://github.com/KrauseFx'>
142
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
111
143
  </a>
112
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
113
145
  </td>
114
- <td id='jimmy-dee'>
115
- <a href='https://github.com/jdee'>
116
- <img src='https://github.com/jdee.png' width='140px;'>
146
+ <td id='andrew-mcburney'>
147
+ <a href='https://github.com/armcburney'>
148
+ <img src='https://github.com/armcburney.png' width='140px;'>
117
149
  </a>
118
- <h4 align='center'>Jimmy Dee</h4>
150
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
119
151
  </td>
120
- <td id='max-ott'>
121
- <a href='https://github.com/max-ott'>
122
- <img src='https://github.com/max-ott.png' width='140px;'>
152
+ <td id='jan-piotrowski'>
153
+ <a href='https://github.com/janpio'>
154
+ <img src='https://github.com/janpio.png' width='140px;'>
123
155
  </a>
124
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
125
157
  </td>
126
158
  <td id='iulian-onofrei'>
127
159
  <a href='https://github.com/revolter'>
@@ -131,49 +163,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
131
163
  </td>
132
164
  </tr>
133
165
  <tr>
166
+ <td id='helmut-januschka'>
167
+ <a href='https://github.com/hjanuschka'>
168
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
169
+ </a>
170
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
171
+ </td>
134
172
  <td id='joshua-liebowitz'>
135
173
  <a href='https://github.com/taquitos'>
136
174
  <img src='https://github.com/taquitos.png' width='140px;'>
137
175
  </a>
138
176
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
139
177
  </td>
140
- <td id='andrew-mcburney'>
141
- <a href='https://github.com/armcburney'>
142
- <img src='https://github.com/armcburney.png' width='140px;'>
143
- </a>
144
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
145
- </td>
146
- <td id='manish-rathi'>
147
- <a href='https://github.com/crazymanish'>
148
- <img src='https://github.com/crazymanish.png' width='140px;'>
149
- </a>
150
- <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
151
- </td>
152
- <td id='aaron-brager'>
153
- <a href='https://github.com/getaaron'>
154
- <img src='https://github.com/getaaron.png' width='140px;'>
155
- </a>
156
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
157
- </td>
158
- <td id='satoshi-namai'>
159
- <a href='https://github.com/ainame'>
160
- <img src='https://github.com/ainame.png' width='140px;'>
161
- </a>
162
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
163
- </td>
164
- </tr>
165
- <tr>
166
- <td id='fumiya-nakamura'>
167
- <a href='https://github.com/nafu'>
168
- <img src='https://github.com/nafu.png' width='140px;'>
169
- </a>
170
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
171
- </td>
172
- <td id='helmut-januschka'>
173
- <a href='https://github.com/hjanuschka'>
174
- <img src='https://github.com/hjanuschka.png' width='140px;'>
178
+ <td id='kohki-miki'>
179
+ <a href='https://github.com/giginet'>
180
+ <img src='https://github.com/giginet.png' width='140px;'>
175
181
  </a>
176
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
182
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
177
183
  </td>
178
184
  <td id='jorge-revuelta-h'>
179
185
  <a href='https://github.com/minuscorp'>
@@ -181,25 +187,19 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
181
187
  </a>
182
188
  <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
183
189
  </td>
184
- <td id='stefan-natchev'>
185
- <a href='https://github.com/snatchev'>
186
- <img src='https://github.com/snatchev.png' width='140px;'>
187
- </a>
188
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
189
- </td>
190
- <td id='felix-krause'>
191
- <a href='https://github.com/KrauseFx'>
192
- <img src='https://github.com/KrauseFx.png' width='140px;'>
190
+ <td id='max-ott'>
191
+ <a href='https://github.com/max-ott'>
192
+ <img src='https://github.com/max-ott.png' width='140px;'>
193
193
  </a>
194
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
194
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
195
195
  </td>
196
196
  </tr>
197
197
  <tr>
198
- <td id='maksym-grebenets'>
199
- <a href='https://github.com/mgrebenets'>
200
- <img src='https://github.com/mgrebenets.png' width='140px;'>
198
+ <td id='luka-mirosevic'>
199
+ <a href='https://github.com/lmirosevic'>
200
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
201
201
  </a>
202
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
202
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
203
203
  </td>
204
204
  </table>
205
205
 
@@ -19,9 +19,9 @@ module Deliver
19
19
  IOS_55 = "iOS-5.5-in"
20
20
  # iPhone XS
21
21
  IOS_58 = "iOS-5.8-in"
22
- # iPhone XR
22
+ # iPhone 14 Pro
23
23
  IOS_61 = "iOS-6.1-in"
24
- # iPhone XS Max
24
+ # iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR
25
25
  IOS_65 = "iOS-6.5-in"
26
26
  # iPhone 14 Pro Max
27
27
  IOS_67 = "iOS-6.7-in"
@@ -45,9 +45,9 @@ module Deliver
45
45
  IOS_55_MESSAGES = "iOS-5.5-in-messages"
46
46
  # iPhone XS iMessage
47
47
  IOS_58_MESSAGES = "iOS-5.8-in-messages"
48
- # iPhone XR iMessage
48
+ # iPhone 14 Pro iMessage
49
49
  IOS_61_MESSAGES = "iOS-6.1-in-messages"
50
- # iPhone XS Max iMessage
50
+ # iPhone 14 Plus, iPhone 13 Pro Max, iPhone 12 Pro Max, iPhone 11 Pro Max, iPhone 11, iPhone XS Max, iPhone XR iMessage
51
51
  IOS_65_MESSAGES = "iOS-6.5-in-messages"
52
52
  # iPhone 14 Pro Max iMessage
53
53
  IOS_67_MESSAGES = "iOS-6.7-in-messages"
@@ -104,6 +104,7 @@ module Deliver
104
104
  ScreenSize::IOS_47 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_47, # also 7 & 8
105
105
  ScreenSize::IOS_55 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_55, # also 7 Plus & 8 Plus
106
106
  ScreenSize::IOS_58 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_58,
107
+ ScreenSize::IOS_61 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_61,
107
108
  ScreenSize::IOS_65 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_65,
108
109
  ScreenSize::IOS_67 => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPHONE_67,
109
110
  ScreenSize::IOS_IPAD => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_97,
@@ -115,6 +116,7 @@ module Deliver
115
116
  ScreenSize::IOS_47_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_47, # also 7 & 8
116
117
  ScreenSize::IOS_55_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_55, # also 7 Plus & 8 Plus
117
118
  ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
119
+ ScreenSize::IOS_61_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_61,
118
120
  ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
119
121
  ScreenSize::IOS_67_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_67,
120
122
  ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
@@ -139,7 +141,7 @@ module Deliver
139
141
  ScreenSize::IOS_47 => "iPhone 6", # also 7 & 8
140
142
  ScreenSize::IOS_55 => "iPhone 6 Plus", # also 7 Plus & 8 Plus
141
143
  ScreenSize::IOS_58 => "iPhone XS",
142
- ScreenSize::IOS_61 => "iPhone XR",
144
+ ScreenSize::IOS_61 => "iPhone 14 Pro",
143
145
  ScreenSize::IOS_65 => "iPhone XS Max",
144
146
  ScreenSize::IOS_67 => "iPhone 14 Pro Max",
145
147
  ScreenSize::IOS_IPAD => "iPad",
@@ -151,7 +153,7 @@ module Deliver
151
153
  ScreenSize::IOS_47_MESSAGES => "iPhone 6 (iMessage)", # also 7 & 8
152
154
  ScreenSize::IOS_55_MESSAGES => "iPhone 6 Plus (iMessage)", # also 7 Plus & 8 Plus
153
155
  ScreenSize::IOS_58_MESSAGES => "iPhone XS (iMessage)",
154
- ScreenSize::IOS_61_MESSAGES => "iPhone XR (iMessage)",
156
+ ScreenSize::IOS_61_MESSAGES => "iPhone 14 Pro (iMessage)",
155
157
  ScreenSize::IOS_65_MESSAGES => "iPhone XS Max (iMessage)",
156
158
  ScreenSize::IOS_67_MESSAGES => "iPhone 14 Pro Max (iMessage)",
157
159
  ScreenSize::IOS_IPAD_MESSAGES => "iPad (iMessage)",
@@ -182,6 +184,7 @@ module Deliver
182
184
  ScreenSize::IOS_47_MESSAGES,
183
185
  ScreenSize::IOS_55_MESSAGES,
184
186
  ScreenSize::IOS_58_MESSAGES,
187
+ ScreenSize::IOS_61_MESSAGES,
185
188
  ScreenSize::IOS_65_MESSAGES,
186
189
  ScreenSize::IOS_67_MESSAGES,
187
190
  ScreenSize::IOS_IPAD_MESSAGES,
@@ -207,8 +210,8 @@ module Deliver
207
210
  [2778, 1284]
208
211
  ],
209
212
  ScreenSize::IOS_61_MESSAGES => [
210
- [828, 1792],
211
- [1792, 828]
213
+ [1179, 2556],
214
+ [2556, 1179]
212
215
  ],
213
216
  ScreenSize::IOS_58_MESSAGES => [
214
217
  [1125, 2436],
@@ -271,8 +274,8 @@ module Deliver
271
274
  [2778, 1284]
272
275
  ],
273
276
  ScreenSize::IOS_61 => [
274
- [828, 1792],
275
- [1792, 828]
277
+ [1179, 2556],
278
+ [2556, 1179]
276
279
  ],
277
280
  ScreenSize::IOS_58 => [
278
281
  [1125, 2436],
@@ -47,6 +47,19 @@ module Deliver
47
47
  end
48
48
 
49
49
  submission.add_app_store_version_to_review_items(app_store_version_id: version.id)
50
+
51
+ 10.times do
52
+ version_with_latest_info = Spaceship::ConnectAPI::AppStoreVersion.get(app_store_version_id: version.id)
53
+
54
+ if version_with_latest_info.app_store_state == Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW
55
+ break
56
+ end
57
+
58
+ UI.message("Waiting for the state of the version to become #{Spaceship::ConnectAPI::AppStoreVersion::AppStoreState::READY_FOR_REVIEW}...")
59
+
60
+ sleep(15)
61
+ end
62
+
50
63
  submission.submit_for_review
51
64
  end
52
65
 
@@ -21,7 +21,7 @@ module Deliver
21
21
  # Need to get prices from the app's relationships
22
22
  # Prices from app's relationship doess not have price tier so need to fetch app price with price tier relationship
23
23
  app_prices = app.prices
24
- if app_prices.first
24
+ if app_prices&.first
25
25
  app_price = Spaceship::ConnectAPI.get_app_price(app_price_id: app_prices.first.id, includes: "priceTier").first
26
26
  old_price = app_price.price_tier.id
27
27
  else
@@ -7,7 +7,7 @@ module Fastlane
7
7
  class [[NAME_CLASS]] < Action
8
8
  def self.run(params)
9
9
  # fastlane will take care of reading in the parameter and fetching the environment variable:
10
- UI.message "Parameter API Token: #{params[:api_token]}"
10
+ UI.message("Parameter API Token: #{params[:api_token]}")
11
11
 
12
12
  # sh "shellcommand ./path"
13
13
 
@@ -19,13 +19,13 @@ module Fastlane
19
19
  #####################################################
20
20
 
21
21
  def self.description
22
- "A short description with <= 80 characters of what this action does"
22
+ 'A short description with <= 80 characters of what this action does'
23
23
  end
24
24
 
25
25
  def self.details
26
26
  # Optional:
27
27
  # this is your chance to provide a more detailed description of this action
28
- "You can use this action to do cool things..."
28
+ 'You can use this action to do cool things...'
29
29
  end
30
30
 
31
31
  def self.available_options
@@ -34,17 +34,23 @@ module Fastlane
34
34
  # Below a few examples
35
35
  [
36
36
  FastlaneCore::ConfigItem.new(key: :api_token,
37
- env_name: "FL_[[NAME_UP]]_API_TOKEN", # The name of the environment variable
38
- description: "API Token for [[NAME_CLASS]]", # a short description of this parameter
37
+ # The name of the environment variable
38
+ env_name: 'FL_[[NAME_UP]]_API_TOKEN',
39
+ # a short description of this parameter
40
+ description: 'API Token for [[NAME_CLASS]]',
39
41
  verify_block: proc do |value|
40
- UI.user_error!("No API token for [[NAME_CLASS]] given, pass using `api_token: 'token'`") unless (value and not value.empty?)
41
- # UI.user_error!("Couldn't find file at path '#{value}'") unless File.exist?(value)
42
+ unless value && !value.empty?
43
+ UI.user_error!("No API token for [[NAME_CLASS]] given, pass using `api_token: 'token'`")
44
+ end
45
+ # UI.user_error!("Couldn't find file at path '#{value}'") unless File.exist?(value)
42
46
  end),
43
47
  FastlaneCore::ConfigItem.new(key: :development,
44
- env_name: "FL_[[NAME_UP]]_DEVELOPMENT",
45
- description: "Create a development certificate instead of a distribution one",
46
- is_string: false, # true: verifies the input is a string, false: every kind of value
47
- default_value: false) # the default value if the user didn't provide one
48
+ env_name: 'FL_[[NAME_UP]]_DEVELOPMENT',
49
+ description: 'Create a development certificate instead of a distribution one',
50
+ # true: verifies the input is a string, false: every kind of value
51
+ is_string: false,
52
+ # the default value if the user didn't provide one
53
+ default_value: false)
48
54
  ]
49
55
  end
50
56
 
@@ -62,7 +68,7 @@ module Fastlane
62
68
 
63
69
  def self.authors
64
70
  # So no one will ever forget your contribution to fastlane :) You are awesome btw!
65
- ["Your GitHub/Twitter Name"]
71
+ ['Your GitHub/Twitter Name']
66
72
  end
67
73
 
68
74
  def self.is_supported?(platform)
@@ -42,8 +42,8 @@ fastlane gym
42
42
 
43
43
  _gym_ uses the latest APIs to build and sign your application which results in much faster build times.
44
44
 
45
- | | Gym Features |
46
- |----------|----------------|
45
+ | | _gym_ Features |
46
+ |----------|------------------|
47
47
  ๐Ÿš€ | _gym_ builds 30% faster than other build tools like [shenzhen](https://github.com/nomad/shenzhen)
48
48
  ๐Ÿ | Beautiful inline build output
49
49
  ๐Ÿ“– | Helps you resolve common build errors like code signing issues
@@ -32,7 +32,7 @@ androidTestImplementation 'tools.fastlane:screengrab:x.x.x'
32
32
 
33
33
  The latest version is [ ![Download](https://maven-badges.herokuapp.com/maven-central/tools.fastlane/screengrab/badge.svg)](https://search.maven.org/artifact/tools.fastlane/screengrab)
34
34
 
35
- As of Screengrab version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version.
35
+ As of _screengrab_ version 2.0.0, all Android test dependencies are AndroidX dependencies. This means a device with API 18+, Android 4.3 or greater is required. If you wish to capture screenshots with an older Android OS, then you must use a 1.x.x version.
36
36
 
37
37
  ##### Configuring your Manifest Permissions
38
38
 
@@ -63,21 +63,21 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
63
63
  1. Add `LocaleTestRule` to your tests class to handle automatic switching of locales.
64
64
 
65
65
  If you're using Java use:
66
-
66
+
67
67
  ```java
68
68
  @ClassRule
69
69
  public static final LocaleTestRule localeTestRule = new LocaleTestRule();
70
70
  ```
71
-
71
+
72
72
  If you're using Kotlin use:
73
-
73
+
74
74
  ```kotlin
75
75
  @Rule @JvmField
76
76
  val localeTestRule = LocaleTestRule()
77
77
  ```
78
-
78
+
79
79
  The `@JvmField` annotation is important. It won't work like this:
80
-
80
+
81
81
  ```kotlin
82
82
  companion object {
83
83
  @get:ClassRule
@@ -87,7 +87,7 @@ Ensure that the following permissions exist in your **src/debug/AndroidManifest.
87
87
 
88
88
  2. To capture screenshots, add the following to your tests `Screengrab.screenshot("name_of_screenshot_here");` on the appropriate screens
89
89
 
90
- # Generating Screenshots with Screengrab
90
+ # Generating Screenshots with _screengrab_
91
91
  - Then, before running `fastlane screengrab` you'll need a debug and test apk
92
92
  - You can create your APKs manually with `./gradlew assembleDebug assembleAndroidTest`
93
93
  - You can also create a lane and use `build_android_app`:
@@ -228,7 +228,7 @@ When using JUnit 3 you'll need to add a bit more code:
228
228
 
229
229
  ## Clean Status Bar
230
230
 
231
- Screengrab can clean your status bar to make your screenshots even more beautiful.
231
+ _screengrab_ can clean your status bar to make your screenshots even more beautiful.
232
232
  It is simply a wrapper that allows configuring SystemUI DemoMode in your code.
233
233
  Note: the clean status bar feature is only supported on devices with *API level >= 23*.
234
234
 
@@ -2,7 +2,7 @@
2
2
  <img src="/img/actions/precheck.png" width="250">
3
3
  </p>
4
4
 
5
- Precheck
5
+ _precheck_
6
6
  ============
7
7
 
8
8
  ###### Check your app using a community driven set of App Store review rules to avoid being rejected
@@ -23,8 +23,8 @@ Apple rejects builds for many avoidable metadata issues like including swear wor
23
23
  # Features
24
24
 
25
25
 
26
- | | precheck Features |
27
- |----------|-----------------|
26
+ | | _precheck_ Features |
27
+ |----------|-----------------------|
28
28
  ๐Ÿ› | ๏ฃฟ product bug mentions
29
29
  ๐Ÿ™… | Swear word checker
30
30
  ๐Ÿค– | Mentioning other platforms
@@ -48,7 +48,7 @@ This does the following:
48
48
  - Downloads the certificate
49
49
  - Generates a new ```.pem``` file in the current working directory, which you can upload to your server
50
50
 
51
- Note that _pem_ will never revoke your existing certificates. _pem_ can't download any of your existing push certificates, as the private key is only available on the machine it was created on.
51
+ Note that _pem_ will never revoke your existing certificates. _pem_ can't download any of your existing push certificates, as the private key is only available on the machine it was created on.
52
52
 
53
53
  If you already have a push certificate enabled, which is active for at least 30 more days, _pem_ will not create a new certificate. If you still want to create one, use the `force`:
54
54
 
@@ -111,7 +111,7 @@ If you need the `p12` in your keychain, perhaps to test push with an app like [K
111
111
  Enter Import Password:
112
112
  <hit enter: the p12 has no password>
113
113
  MAC verified OK
114
- Enter PEM pass phrase:
114
+ Enter your pem passphrase:
115
115
  <enter a temporary password to encrypt the pem file>
116
116
 
117
117
  % openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12
@@ -212,7 +212,7 @@ fastlane match development
212
212
 
213
213
  <img src="/img/actions/match_appstore_small.gif" width="550" />
214
214
 
215
- This will create a new certificate and provisioning profile (if required) and store them in your selected storage.
215
+ This will create a new certificate and provisioning profile (if required) and store them in your selected storage.
216
216
  If you previously ran _match_ with the configured storage it will automatically install the existing profiles from your storage.
217
217
 
218
218
  The provisioning profiles are installed in `~/Library/MobileDevice/Provisioning Profiles` while the certificates and private keys are installed in your Keychain.
@@ -400,7 +400,7 @@ By using the `force_for_new_devices` parameter, _match_ will check if the (enabl
400
400
 
401
401
  _**Important:** The `force_for_new_devices` parameter is ignored for App Store provisioning profiles since they don't contain any device information._
402
402
 
403
- If you're not using _fastlane_, you can also use the `force_for_new_devices` option from the command line:
403
+ If you're not using `Fastfile`, you can also use the `force_for_new_devices` option from the command line:
404
404
 
405
405
  ```no-highlight
406
406
  fastlane match adhoc --force_for_new_devices
@@ -408,7 +408,7 @@ fastlane match adhoc --force_for_new_devices
408
408
 
409
409
  ##### Templates (aka: custom entitlements)
410
410
 
411
- Match can generate profiles that contain custom entitlements by passing in the entitlement's name with the `template_name` parameter.
411
+ _match_ can generate profiles that contain custom entitlements by passing in the entitlement's name with the `template_name` parameter.
412
412
 
413
413
  ```
414
414
  match(type: "development",
@@ -512,9 +512,11 @@ Please be careful when using this option and ensure the certificates and profile
512
512
  If you want to manually decrypt a file you can.
513
513
 
514
514
  ```no-highlight
515
- openssl aes-256-cbc -k "<password>" -in "<fileYouWantToDecryptPath>" -out "<decryptedFilePath>" -a -d
515
+ openssl aes-256-cbc -k "<password>" -in "<fileYouWantToDecryptPath>" -out "<decryptedFilePath>" -a -d -md [md5|sha256]
516
516
  ```
517
517
 
518
+ _**Note:** You may need to swap double quotes `"` for single quotes `'` if your match password contains an exclamation mark `!`._
519
+
518
520
  #### Export Distribution Certificate and Private Key as Single .p12 File
519
521
 
520
522
  _match_ stores the certificate (`.cer`) and the private key (`.p12`) files separately. The following steps will repackage the separate certificate and private key into a single `.p12` file.
@@ -4,7 +4,7 @@
4
4
 
5
5
  ###### The best way to manage your TestFlight testers and builds from your terminal
6
6
 
7
- Pilot makes it easier to manage your app on Appleโ€™s TestFlight. You can:
7
+ _pilot_ makes it easier to manage your app on Appleโ€™s TestFlight. You can:
8
8
 
9
9
  - Upload & distribute builds
10
10
  - Add & remove testers