fastlane 2.150.2 → 2.152.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 +84 -84
  3. data/deliver/lib/deliver/.upload_metadata.rb.swp +0 -0
  4. data/deliver/lib/deliver/app_screenshot.rb +4 -4
  5. data/deliver/lib/deliver/download_screenshots.rb +35 -28
  6. data/deliver/lib/deliver/options.rb +8 -2
  7. data/deliver/lib/deliver/submit_for_review.rb +10 -10
  8. data/deliver/lib/deliver/upload_metadata.rb +9 -12
  9. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  10. data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +3 -0
  11. data/fastlane/lib/fastlane/actions/git_branch.rb +4 -1
  12. data/fastlane/lib/fastlane/actions/notarize.rb +13 -3
  13. data/fastlane/lib/fastlane/actions/pod_push.rb +10 -1
  14. data/fastlane/lib/fastlane/actions/resign.rb +1 -1
  15. data/fastlane/lib/fastlane/actions/setup_ci.rb +5 -0
  16. data/fastlane/lib/fastlane/actions/setup_circle_ci.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/setup_travis.rb +1 -1
  18. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +10 -2
  19. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +11 -3
  20. data/fastlane/lib/fastlane/documentation/docs_generator.rb +1 -1
  21. data/fastlane/lib/fastlane/helper/s3_client_helper.rb +28 -11
  22. data/fastlane/lib/fastlane/server/socket_server.rb +7 -1
  23. data/fastlane/lib/fastlane/swift_fastlane_function.rb +1 -1
  24. data/fastlane/lib/fastlane/version.rb +1 -1
  25. data/fastlane/swift/Actions.swift +1 -1
  26. data/fastlane/swift/ArgumentProcessor.swift +24 -24
  27. data/fastlane/swift/ControlCommand.swift +3 -3
  28. data/fastlane/swift/Deliverfile.swift +4 -8
  29. data/fastlane/swift/DeliverfileProtocol.swift +181 -182
  30. data/fastlane/swift/Fastlane.swift +2825 -2805
  31. data/fastlane/swift/Gymfile.swift +4 -8
  32. data/fastlane/swift/GymfileProtocol.swift +133 -134
  33. data/fastlane/swift/LaneFileProtocol.swift +17 -17
  34. data/fastlane/swift/Matchfile.swift +4 -8
  35. data/fastlane/swift/MatchfileProtocol.swift +115 -112
  36. data/fastlane/swift/Plugins.swift +1 -1
  37. data/fastlane/swift/Precheckfile.swift +4 -8
  38. data/fastlane/swift/PrecheckfileProtocol.swift +22 -23
  39. data/fastlane/swift/RubyCommand.swift +34 -37
  40. data/fastlane/swift/RubyCommandable.swift +3 -1
  41. data/fastlane/swift/Runner.swift +76 -69
  42. data/fastlane/swift/Scanfile.swift +4 -8
  43. data/fastlane/swift/ScanfileProtocol.swift +190 -191
  44. data/fastlane/swift/Screengrabfile.swift +4 -8
  45. data/fastlane/swift/ScreengrabfileProtocol.swift +67 -68
  46. data/fastlane/swift/Snapshotfile.swift +4 -8
  47. data/fastlane/swift/SnapshotfileProtocol.swift +127 -128
  48. data/fastlane/swift/SocketClient.swift +84 -90
  49. data/fastlane/swift/SocketResponse.swift +14 -14
  50. data/fastlane/swift/formatting/Brewfile +1 -0
  51. data/fastlane/swift/formatting/Brewfile.lock.json +39 -0
  52. data/fastlane/swift/formatting/Rakefile +18 -0
  53. data/fastlane/swift/main.swift +5 -6
  54. data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +21 -10
  55. data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
  56. data/match/lib/assets/READMETemplate.md +5 -2
  57. data/match/lib/match/options.rb +4 -0
  58. data/match/lib/match/runner.rb +5 -4
  59. data/match/lib/match/storage/git_storage.rb +1 -1
  60. data/match/lib/match/storage/s3_storage.rb +25 -7
  61. data/pilot/lib/pilot/options.rb +6 -0
  62. data/sigh/lib/assets/resign.sh +18 -0
  63. data/spaceship/lib/spaceship/client.rb +1 -2
  64. data/spaceship/lib/spaceship/connect_api/client.rb +0 -1
  65. data/spaceship/lib/spaceship/connect_api/file_uploader.rb +0 -1
  66. data/spaceship/lib/spaceship/connect_api/models/app_preview.rb +4 -4
  67. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
  68. data/spaceship/lib/spaceship/connect_api/models/certificate.rb +11 -1
  69. metadata +36 -46
  70. data/deliver/lib/deliver/.download_screenshots.rb.swp +0 -0
  71. data/deliver/lib/deliver/.upload_screenshots.rb.swp +0 -0
  72. data/spaceship/lib/spaceship/babosa_fix.rb +0 -30
  73. data/spaceship/lib/spaceship/connect_api/.file_uploader.rb.swp +0 -0
  74. data/spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87ea2530852ddd4a16e80f9935752a54ce909b00d0c13960f5c1d57b41e40891
4
- data.tar.gz: 126a9a64389074d2f34fde46baf7687574e91f9090f1d318f4583552d642e847
3
+ metadata.gz: d0172d03e9f2dcbb76ce58ce0064caa8e107e0aeba78f63376ed1d9eb3a9e41e
4
+ data.tar.gz: fcc74d8f86f188653c4395c50c4da7ed5660d6c065816779af45d100855e68ea
5
5
  SHA512:
6
- metadata.gz: f8b50d9557dbd71db173be7d854bc511f161f00e7a6115571b99dee6029806b3280d6386c19b0814a7175bd486f3fa46e0d9786a316102a0816c55e4315a5da5
7
- data.tar.gz: 6c86f8a577d56a9a859a94765f51704ab80b2003facfb9b4baf355f693012d3a9b5f02def5b25fefa41750bb6bc8a1813d8a9faf73b19f541b1c4af626249fbf
6
+ metadata.gz: 885d5bec8f98d24a8cfa4091d956fbba3a5e13fb09edaa76549608aacc90568ac698c1143bfa041f310702a31d8080170afd804b2d98b1af18f75bff657fd66d
7
+ data.tar.gz: e2c9b1dc7e9830a79d3ee841f377dfdf541680f8efa9ee2df9867b46459530856cc07c0e99652749b9af9fa4571688e895e19f2af9692e4a188b74ee8f69f1fa
data/README.md CHANGED
@@ -40,69 +40,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
40
40
  </a>
41
41
  <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
42
42
  </td>
43
- <td id='jan-piotrowski'>
44
- <a href='https://github.com/janpio'>
45
- <img src='https://github.com/janpio.png?size=140'>
43
+ <td id='jimmy-dee'>
44
+ <a href='https://github.com/jdee'>
45
+ <img src='https://github.com/jdee.png?size=140'>
46
46
  </a>
47
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
47
+ <h4 align='center'>Jimmy Dee</h4>
48
48
  </td>
49
- <td id='jérôme-lacoste'>
50
- <a href='https://github.com/lacostej'>
51
- <img src='https://github.com/lacostej.png?size=140'>
49
+ <td id='kohki-miki'>
50
+ <a href='https://github.com/giginet'>
51
+ <img src='https://github.com/giginet.png?size=140'>
52
52
  </a>
53
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
53
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
54
54
  </td>
55
- <td id='stefan-natchev'>
56
- <a href='https://github.com/snatchev'>
57
- <img src='https://github.com/snatchev.png?size=140'>
55
+ <td id='olivier-halligon'>
56
+ <a href='https://github.com/AliSoftware'>
57
+ <img src='https://github.com/AliSoftware.png?size=140'>
58
58
  </a>
59
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
59
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
60
60
  </td>
61
- <td id='andrew-mcburney'>
62
- <a href='https://github.com/armcburney'>
63
- <img src='https://github.com/armcburney.png?size=140'>
61
+ <td id='jan-piotrowski'>
62
+ <a href='https://github.com/janpio'>
63
+ <img src='https://github.com/janpio.png?size=140'>
64
64
  </a>
65
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
65
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
66
66
  </td>
67
67
  </tr>
68
68
  <tr>
69
- <td id='manu-wallner'>
70
- <a href='https://github.com/milch'>
71
- <img src='https://github.com/milch.png?size=140'>
72
- </a>
73
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
74
- </td>
75
- <td id='danielle-tomlinson'>
76
- <a href='https://github.com/endocrimes'>
77
- <img src='https://github.com/endocrimes.png?size=140'>
78
- </a>
79
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
80
- </td>
81
- <td id='fumiya-nakamura'>
82
- <a href='https://github.com/nafu'>
83
- <img src='https://github.com/nafu.png?size=140'>
84
- </a>
85
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
86
- </td>
87
- <td id='jimmy-dee'>
88
- <a href='https://github.com/jdee'>
89
- <img src='https://github.com/jdee.png?size=140'>
90
- </a>
91
- <h4 align='center'>Jimmy Dee</h4>
92
- </td>
93
- <td id='joshua-liebowitz'>
94
- <a href='https://github.com/taquitos'>
95
- <img src='https://github.com/taquitos.png?size=140'>
69
+ <td id='daniel-jankowski'>
70
+ <a href='https://github.com/mollyIV'>
71
+ <img src='https://github.com/mollyIV.png?size=140'>
96
72
  </a>
97
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
73
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
98
74
  </td>
99
- </tr>
100
- <tr>
101
- <td id='aaron-brager'>
102
- <a href='https://github.com/getaaron'>
103
- <img src='https://github.com/getaaron.png?size=140'>
75
+ <td id='matthew-ellis'>
76
+ <a href='https://github.com/matthewellis'>
77
+ <img src='https://github.com/matthewellis.png?size=140'>
104
78
  </a>
105
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
79
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
106
80
  </td>
107
81
  <td id='helmut-januschka'>
108
82
  <a href='https://github.com/hjanuschka'>
@@ -116,43 +90,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
116
90
  </a>
117
91
  <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
118
92
  </td>
119
- <td id='jorge-revuelta-h'>
120
- <a href='https://github.com/minuscorp'>
121
- <img src='https://github.com/minuscorp.png?size=140'>
122
- </a>
123
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
124
- </td>
125
- <td id='maksym-grebenets'>
126
- <a href='https://github.com/mgrebenets'>
127
- <img src='https://github.com/mgrebenets.png?size=140'>
93
+ <td id='fumiya-nakamura'>
94
+ <a href='https://github.com/nafu'>
95
+ <img src='https://github.com/nafu.png?size=140'>
128
96
  </a>
129
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
97
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
130
98
  </td>
131
99
  </tr>
132
100
  <tr>
133
- <td id='olivier-halligon'>
134
- <a href='https://github.com/AliSoftware'>
135
- <img src='https://github.com/AliSoftware.png?size=140'>
101
+ <td id='andrew-mcburney'>
102
+ <a href='https://github.com/armcburney'>
103
+ <img src='https://github.com/armcburney.png?size=140'>
136
104
  </a>
137
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
105
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
138
106
  </td>
139
- <td id='matthew-ellis'>
140
- <a href='https://github.com/matthewellis'>
141
- <img src='https://github.com/matthewellis.png?size=140'>
107
+ <td id='iulian-onofrei'>
108
+ <a href='https://github.com/revolter'>
109
+ <img src='https://github.com/revolter.png?size=140'>
142
110
  </a>
143
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
111
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
144
112
  </td>
145
- <td id='daniel-jankowski'>
146
- <a href='https://github.com/mollyIV'>
147
- <img src='https://github.com/mollyIV.png?size=140'>
113
+ <td id='luka-mirosevic'>
114
+ <a href='https://github.com/lmirosevic'>
115
+ <img src='https://github.com/lmirosevic.png?size=140'>
148
116
  </a>
149
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
117
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
150
118
  </td>
151
- <td id='kohki-miki'>
152
- <a href='https://github.com/giginet'>
153
- <img src='https://github.com/giginet.png?size=140'>
119
+ <td id='stefan-natchev'>
120
+ <a href='https://github.com/snatchev'>
121
+ <img src='https://github.com/snatchev.png?size=140'>
154
122
  </a>
155
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
123
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
156
124
  </td>
157
125
  <td id='felix-krause'>
158
126
  <a href='https://github.com/KrauseFx'>
@@ -162,17 +130,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
162
130
  </td>
163
131
  </tr>
164
132
  <tr>
165
- <td id='luka-mirosevic'>
166
- <a href='https://github.com/lmirosevic'>
167
- <img src='https://github.com/lmirosevic.png?size=140'>
133
+ <td id='jérôme-lacoste'>
134
+ <a href='https://github.com/lacostej'>
135
+ <img src='https://github.com/lacostej.png?size=140'>
168
136
  </a>
169
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
137
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
170
138
  </td>
171
- <td id='iulian-onofrei'>
172
- <a href='https://github.com/revolter'>
173
- <img src='https://github.com/revolter.png?size=140'>
139
+ <td id='joshua-liebowitz'>
140
+ <a href='https://github.com/taquitos'>
141
+ <img src='https://github.com/taquitos.png?size=140'>
174
142
  </a>
175
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
143
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
144
+ </td>
145
+ <td id='danielle-tomlinson'>
146
+ <a href='https://github.com/endocrimes'>
147
+ <img src='https://github.com/endocrimes.png?size=140'>
148
+ </a>
149
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
150
+ </td>
151
+ <td id='manu-wallner'>
152
+ <a href='https://github.com/milch'>
153
+ <img src='https://github.com/milch.png?size=140'>
154
+ </a>
155
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
156
+ </td>
157
+ <td id='aaron-brager'>
158
+ <a href='https://github.com/getaaron'>
159
+ <img src='https://github.com/getaaron.png?size=140'>
160
+ </a>
161
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
162
+ </td>
163
+ </tr>
164
+ <tr>
165
+ <td id='jorge-revuelta-h'>
166
+ <a href='https://github.com/minuscorp'>
167
+ <img src='https://github.com/minuscorp.png?size=140'>
168
+ </a>
169
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
170
+ </td>
171
+ <td id='maksym-grebenets'>
172
+ <a href='https://github.com/mgrebenets'>
173
+ <img src='https://github.com/mgrebenets.png?size=140'>
174
+ </a>
175
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
176
176
  </td>
177
177
  </table>
178
178
 
@@ -51,9 +51,9 @@ module Deliver
51
51
  # iPad iMessage
52
52
  IOS_IPAD_MESSAGES = "iOS-iPad-messages"
53
53
  # iPad 10.5 iMessage
54
- IOS_IPAD_10_5_MESSAGES = "iOS-10.5-messages"
54
+ IOS_IPAD_10_5_MESSAGES = "iOS-iPad-10.5-messages"
55
55
  # iPad 11 iMessage
56
- IOS_IPAD_11_MESSAGES = "iOS-11-messages"
56
+ IOS_IPAD_11_MESSAGES = "iOS-iPad-11-messages"
57
57
  # iPad Pro iMessage
58
58
  IOS_IPAD_PRO_MESSAGES = "iOS-iPad-Pro-messages"
59
59
  # iPad Pro (12.9-inch) (3rd generation) iMessage
@@ -113,8 +113,8 @@ module Deliver
113
113
  ScreenSize::IOS_58_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_58,
114
114
  ScreenSize::IOS_65_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPHONE_65,
115
115
  ScreenSize::IOS_IPAD_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_97,
116
- ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_129,
117
- ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_IPAD_PRO_3GEN_129,
116
+ ScreenSize::IOS_IPAD_PRO_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_129,
117
+ ScreenSize::IOS_IPAD_PRO_12_9_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_129,
118
118
  ScreenSize::IOS_IPAD_10_5_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_105,
119
119
  ScreenSize::IOS_IPAD_11_MESSAGES => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::IMESSAGE_APP_IPAD_PRO_3GEN_11,
120
120
  ScreenSize::MAC => Spaceship::ConnectAPI::AppScreenshotSet::DisplayType::APP_DESKTOP,
@@ -28,42 +28,49 @@ module Deliver
28
28
  end
29
29
 
30
30
  localizations = version.get_app_store_version_localizations
31
+ threads = []
31
32
  localizations.each do |localization|
32
- screenshot_sets = localization.get_app_screenshot_sets
33
- screenshot_sets.each do |screenshot_set|
34
- screenshot_set.app_screenshots.each_with_index do |screenshot, index|
35
- file_name = [index, screenshot_set.screenshot_display_type, index].join("_")
36
- original_file_extension = File.extname(screenshot.file_name).strip.downcase[1..-1]
37
- file_name += "." + original_file_extension
38
-
39
- url = screenshot.image_asset_url(type: original_file_extension)
40
- next if url.nil?
33
+ threads << Thread.new do
34
+ download_screenshots(folder_path, localization)
35
+ end
36
+ end
37
+ threads.each(&:join)
38
+ end
41
39
 
42
- language = localization.locale
40
+ def self.download_screenshots(folder_path, localization)
41
+ language = localization.locale
42
+ screenshot_sets = localization.get_app_screenshot_sets
43
+ screenshot_sets.each do |screenshot_set|
44
+ screenshot_set.app_screenshots.each_with_index do |screenshot, index|
45
+ file_name = [index, screenshot_set.screenshot_display_type, index].join("_")
46
+ original_file_extension = File.extname(screenshot.file_name).strip.downcase[1..-1]
47
+ file_name += "." + original_file_extension
43
48
 
44
- UI.message("Downloading existing screenshot '#{file_name}' for language '#{language}'")
49
+ url = screenshot.image_asset_url(type: original_file_extension)
50
+ next if url.nil?
45
51
 
46
- # If the screen shot is for an appleTV we need to store it in a way that we'll know it's an appleTV
47
- # screen shot later as the screen size is the same as an iPhone 6 Plus in landscape.
48
- if screenshot_set.apple_tv?
49
- containing_folder = File.join(folder_path, "appleTV", language)
50
- else
51
- containing_folder = File.join(folder_path, language)
52
- end
52
+ UI.message("Downloading existing screenshot '#{file_name}' for language '#{language}'")
53
53
 
54
- if screenshot_set.imessage?
55
- containing_folder = File.join(folder_path, "iMessage", language)
56
- end
54
+ # If the screen shot is for an appleTV we need to store it in a way that we'll know it's an appleTV
55
+ # screen shot later as the screen size is the same as an iPhone 6 Plus in landscape.
56
+ if screenshot_set.apple_tv?
57
+ containing_folder = File.join(folder_path, "appleTV", language)
58
+ else
59
+ containing_folder = File.join(folder_path, language)
60
+ end
57
61
 
58
- begin
59
- FileUtils.mkdir_p(containing_folder)
60
- rescue
61
- # if it's already there
62
- end
62
+ if screenshot_set.imessage?
63
+ containing_folder = File.join(folder_path, "iMessage", language)
64
+ end
63
65
 
64
- path = File.join(containing_folder, file_name)
65
- File.binwrite(path, open(url).read)
66
+ begin
67
+ FileUtils.mkdir_p(containing_folder)
68
+ rescue
69
+ # if it's already there
66
70
  end
71
+
72
+ path = File.join(containing_folder, file_name)
73
+ File.binwrite(path, open(url).read)
67
74
  end
68
75
  end
69
76
  end
@@ -165,11 +165,17 @@ module Deliver
165
165
  FastlaneCore::ConfigItem.new(key: :auto_release_date,
166
166
  env_name: "DELIVER_AUTO_RELEASE_DATE",
167
167
  description: "Date in milliseconds for automatically releasing on pending approval (Can not be used together with `automatic_release`)",
168
- is_string: false,
168
+ type: Integer,
169
169
  optional: true,
170
170
  conflicting_options: [:automatic_release],
171
171
  conflict_block: proc do |value|
172
172
  UI.user_error!("You can't use 'auto_release_date' and '#{value.key}' options together.")
173
+ end,
174
+ verify_block: proc do |value|
175
+ now_in_ms = Time.now.to_i * 1000
176
+ if value < now_in_ms
177
+ UI.user_error!("'#{value}' needs to be in the future and in milliseonds (current time is '#{now_in_ms}')")
178
+ end
173
179
  end),
174
180
  FastlaneCore::ConfigItem.new(key: :phased_release,
175
181
  env_name: "DELIVER_PHASED_RELEASE",
@@ -286,7 +292,7 @@ module Deliver
286
292
  deprecated: "Removed after the migration to the new App Store Connect API in June 2020",
287
293
  is_string: false,
288
294
  type: Array,
289
- default_value: []),
295
+ optional: true),
290
296
 
291
297
  # Non Localised
292
298
  FastlaneCore::ConfigItem.new(key: :app_icon,
@@ -120,10 +120,10 @@ module Deliver
120
120
  " Example: submission_information: { add_id_info_uses_idfa: false }",
121
121
  " Example: submission_information: {",
122
122
  " add_id_info_uses_idfa: true,",
123
- " add_id_info_limits_tracking: false,",
124
123
  " add_id_info_serves_ads: false,",
125
- " add_id_info_uses_idfa: false,",
126
- " add_id_info_tracks_install: false",
124
+ " add_id_info_tracks_install: true,",
125
+ " add_id_info_tracks_action: true,",
126
+ " add_id_info_limits_tracking: true",
127
127
  " }",
128
128
  " Example CLI:",
129
129
  " --submission_information \"{\\\"add_id_info_uses_idfa\\\": false}\""
@@ -134,10 +134,10 @@ module Deliver
134
134
  # Create, update, or delete IDFA declaration
135
135
  if uses_idfa == false
136
136
  if idfa_declaration
137
- UI.verbose("Deleting IDFA delcaration")
137
+ UI.verbose("Deleting IDFA declaration")
138
138
  idfa_declaration.delete!
139
139
  updated_idfa = true
140
- UI.verbose("Deleted IDFA delcaration")
140
+ UI.verbose("Deleted IDFA declaration")
141
141
  end
142
142
  elsif uses_idfa == true
143
143
  attributes = {
@@ -148,19 +148,19 @@ module Deliver
148
148
  }
149
149
 
150
150
  if idfa_declaration
151
- UI.verbose("Updating IDFA delcaration")
151
+ UI.verbose("Updating IDFA declaration")
152
152
  idfa_declaration.update(attributes: attributes)
153
- UI.verbose("Updated IDFA delcaration")
153
+ UI.verbose("Updated IDFA declaration")
154
154
  else
155
- UI.verbose("Creating IDFA delcaration")
155
+ UI.verbose("Creating IDFA declaration")
156
156
  version.create_idfa_declaration(attributes: attributes)
157
- UI.verbose("Created IDFA delcaration")
157
+ UI.verbose("Created IDFA declaration")
158
158
  end
159
159
 
160
160
  updated_idfa = true
161
161
  end
162
162
 
163
- UI.success("Successfully updated IDFA delcarations on App Store Connect") if updated_idfa
163
+ UI.success("Successfully updated IDFA declarations on App Store Connect") if updated_idfa
164
164
  end
165
165
 
166
166
  def update_submission_information(options, app)
@@ -175,6 +175,11 @@ module Deliver
175
175
  end
176
176
  non_localized_version_attributes['releaseType'] = release_type
177
177
 
178
+ # Update app store version
179
+ # This needs to happen before updating localizations (https://openradar.appspot.com/radar?id=4925914991296512)
180
+ UI.message("Uploading metadata to App Store Connect for version")
181
+ version.update(attributes: non_localized_version_attributes)
182
+
178
183
  # Update app store version localizations
179
184
  app_store_version_localizations.each do |app_store_version_localization|
180
185
  attributes = localized_version_attributes_by_locale[app_store_version_localization.locale]
@@ -193,10 +198,6 @@ module Deliver
193
198
  end
194
199
  end
195
200
 
196
- # Update app store version
197
- UI.message("Uploading metadata to App Store Connect for version")
198
- version.update(attributes: non_localized_version_attributes)
199
-
200
201
  # Update categories
201
202
  app_info = app.fetch_edit_app_info
202
203
  if app_info
@@ -271,7 +272,7 @@ module Deliver
271
272
  next if k.nil? || v.nil?
272
273
  next if k == v
273
274
  has_mapped_values = true
274
- UI.deprecated("Category '#{k}' from iTunesConnect as been deprecated. Please replace with '#{v}'")
275
+ UI.deprecated("Category '#{k}' from iTunesConnect has been deprecated. Please replace with '#{v}'")
275
276
  end
276
277
  UI.deprecated("You can find more info at https://docs.fastlane.tools/actions/deliver/#reference") if has_mapped_values
277
278
 
@@ -330,10 +331,6 @@ module Deliver
330
331
  seconds_in_hour = 60 * 60
331
332
  time_in_s_to_hour = (time_in_s / seconds_in_hour).to_i * seconds_in_hour
332
333
 
333
- # Remove minute offset if timezone has minute offset
334
- minute_offset = Time.now.utc_offset % seconds_in_hour
335
- time_in_s_to_hour -= minute_offset
336
-
337
334
  return Time.at(time_in_s_to_hour).utc.strftime("%Y-%m-%dT%H:%M:%S%:z")
338
335
  end
339
336
 
@@ -614,12 +611,12 @@ module Deliver
614
611
  next if k.nil? || v.nil?
615
612
  next if k == v
616
613
  has_mapped_values = true
617
- UI.deprecated("Age rating '#{k}' from iTunesConnect as been deprecated. Please replace with '#{v}'")
614
+ UI.deprecated("Age rating '#{k}' from iTunesConnect has been deprecated. Please replace with '#{v}'")
618
615
  end
619
616
  UI.deprecated("You can find more info at https://docs.fastlane.tools/actions/deliver/#reference") if has_mapped_values
620
617
 
621
- age_rating_delcaration = version.fetch_age_rating_declaration
622
- age_rating_delcaration.update(attributes: attributes)
618
+ age_rating_declaration = version.fetch_age_rating_declaration
619
+ age_rating_declaration.update(attributes: attributes)
623
620
  end
624
621
  end
625
622
  # rubocop:enable Metrics/ClassLength