fastlane 2.182.0 → 2.184.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +103 -96
  3. data/cert/lib/cert/runner.rb +3 -7
  4. data/deliver/lib/assets/summary.html.erb +10 -10
  5. data/deliver/lib/deliver/commands_generator.rb +1 -1
  6. data/deliver/lib/deliver/detect_values.rb +5 -3
  7. data/deliver/lib/deliver/download_screenshots.rb +1 -1
  8. data/deliver/lib/deliver/html_generator.rb +2 -2
  9. data/deliver/lib/deliver/module.rb +6 -0
  10. data/deliver/lib/deliver/options.rb +36 -51
  11. data/deliver/lib/deliver/runner.rb +8 -11
  12. data/deliver/lib/deliver/setup.rb +1 -1
  13. data/deliver/lib/deliver/submit_for_review.rb +4 -4
  14. data/deliver/lib/deliver/upload_metadata.rb +20 -6
  15. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  16. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  17. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +7 -11
  18. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +12 -2
  19. data/fastlane/lib/fastlane/actions/carthage.rb +1 -1
  20. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +5 -1
  21. data/fastlane/lib/fastlane/actions/danger.rb +7 -1
  22. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +32 -12
  23. data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
  24. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +3 -1
  25. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +5 -1
  26. data/fastlane/lib/fastlane/actions/git_pull.rb +4 -10
  27. data/fastlane/lib/fastlane/actions/hipchat.rb +2 -1
  28. data/fastlane/lib/fastlane/actions/notification.rb +1 -1
  29. data/fastlane/lib/fastlane/actions/register_device.rb +7 -10
  30. data/fastlane/lib/fastlane/actions/register_devices.rb +7 -10
  31. data/fastlane/lib/fastlane/actions/set_changelog.rb +7 -10
  32. data/fastlane/lib/fastlane/actions/swiftlint.rb +17 -15
  33. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
  34. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +5 -1
  35. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -1
  36. data/fastlane/lib/fastlane/actions/xcodebuild.rb +5 -5
  37. data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
  38. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
  39. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -1
  40. data/fastlane/lib/fastlane/swift_fastlane_function.rb +6 -4
  41. data/fastlane/lib/fastlane/version.rb +1 -1
  42. data/fastlane/swift/Deliverfile.swift +1 -1
  43. data/fastlane/swift/DeliverfileProtocol.swift +20 -20
  44. data/fastlane/swift/Fastlane.swift +473 -247
  45. data/fastlane/swift/Gymfile.swift +1 -1
  46. data/fastlane/swift/GymfileProtocol.swift +1 -1
  47. data/fastlane/swift/Matchfile.swift +1 -1
  48. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  49. data/fastlane/swift/OptionalConfigValue.swift +2 -32
  50. data/fastlane/swift/Precheckfile.swift +1 -1
  51. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  52. data/fastlane/swift/Scanfile.swift +1 -1
  53. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  54. data/fastlane/swift/Screengrabfile.swift +1 -1
  55. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  56. data/fastlane/swift/Snapshotfile.swift +1 -1
  57. data/fastlane/swift/SnapshotfileProtocol.swift +1 -1
  58. data/fastlane/swift/formatting/Brewfile.lock.json +11 -11
  59. data/fastlane_core/lib/fastlane_core/build_watcher.rb +39 -3
  60. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +5 -0
  61. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +5 -3
  62. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
  63. data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
  64. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -1
  65. data/frameit/lib/frameit/config_parser.rb +2 -2
  66. data/frameit/lib/frameit/frame_downloader.rb +2 -1
  67. data/gym/lib/gym/code_signing_mapping.rb +2 -2
  68. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +6 -5
  69. data/match/lib/match/importer.rb +6 -10
  70. data/match/lib/match/migrate.rb +2 -3
  71. data/match/lib/match/nuke.rb +3 -7
  72. data/match/lib/match/options.rb +1 -0
  73. data/match/lib/match/runner.rb +2 -3
  74. data/match/lib/match/spaceship_ensure.rb +3 -0
  75. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  76. data/match/lib/match/storage/s3_storage.rb +2 -2
  77. data/pilot/lib/pilot/build_manager.rb +7 -4
  78. data/pilot/lib/pilot/manager.rb +3 -7
  79. data/pilot/lib/pilot/options.rb +8 -0
  80. data/precheck/lib/precheck/runner.rb +8 -7
  81. data/scan/lib/scan/runner.rb +1 -1
  82. data/sigh/lib/assets/resign.sh +77 -46
  83. data/sigh/lib/sigh/download_all.rb +4 -8
  84. data/sigh/lib/sigh/runner.rb +4 -8
  85. data/spaceship/README.md +2 -2
  86. data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
  87. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +35 -4
  88. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +10 -0
  89. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +2 -3
  90. data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +3 -1
  91. data/spaceship/lib/spaceship/connect_api/models/build.rb +2 -0
  92. data/spaceship/lib/spaceship/connect_api/token.rb +6 -0
  93. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +4 -2
  94. data/supply/lib/supply/client.rb +2 -2
  95. data/supply/lib/supply/uploader.rb +2 -2
  96. metadata +42 -39
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a070315dda69108ca90681daef2a7faf462b82dbad765141469131cb851599e8
4
- data.tar.gz: 1022b14bee49abce8a9b30bbdaa1b20a294ced05cc41fb8760a02d4c0f8f18e7
3
+ metadata.gz: 8489bb7e76af9645ce56e7a5279f885aba7a9945d6b144e7544fb9fb455ce065
4
+ data.tar.gz: 67c5fbb88fde421073e3ae3f04f541a9f56ecaa062680b1692bf7b9ae59355be
5
5
  SHA512:
6
- metadata.gz: e58537c12bc248c3f7e657e0e40a3ca7976581902d73ce6618b5378b77d7cf6c98ca8c8007714b5d7a752be868f04f916ff81dba31e1647d82b56608b088e2de
7
- data.tar.gz: b81b9773dda36d9db4423d19d94782e8c32d32b5bd4bab4a53dd06f9f4acc4b5c0e1cb2933fc4dd8d5d564e6e2d744bdd26906dd5366be6d89ce16cf4df101d6
6
+ metadata.gz: 2e9388acc100af2bb5c2eff1e0cbef5d406f98764e7b84fd446bb7875ba194c17561432f671e3f77a05270f396aa51999fd2b30b1e2017912f24399d6fc3e983
7
+ data.tar.gz: cb92d5893692728b774da29b18a02febf569ecd7b38afb0d9b286ea355a86389ad195093196795d1f9f48ee8b34cc1b7e108a95de364d8c764d56b24f2d853b7
data/README.md CHANGED
@@ -35,158 +35,165 @@ 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?size=140'>
38
+ <td id='max-ott'>
39
+ <a href='https://github.com/max-ott'>
40
+ <img src='https://github.com/max-ott.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/ott_max'>Max Ott</a></h4>
43
43
  </td>
44
- <td id='danielle-tomlinson'>
45
- <a href='https://github.com/endocrimes'>
46
- <img src='https://github.com/endocrimes.png?size=140'>
44
+ <td id='maksym-grebenets'>
45
+ <a href='https://github.com/mgrebenets'>
46
+ <img src='https://github.com/mgrebenets.png' width='140px;'>
47
47
  </a>
48
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
48
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
49
49
  </td>
50
- <td id='iulian-onofrei'>
51
- <a href='https://github.com/revolter'>
52
- <img src='https://github.com/revolter.png?size=140'>
50
+ <td id='jorge-revuelta-h'>
51
+ <a href='https://github.com/minuscorp'>
52
+ <img src='https://github.com/minuscorp.png' width='140px;'>
53
53
  </a>
54
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
55
55
  </td>
56
- <td id='satoshi-namai'>
57
- <a href='https://github.com/ainame'>
58
- <img src='https://github.com/ainame.png?size=140'>
56
+ <td id='roger-oba'>
57
+ <a href='https://github.com/rogerluan'>
58
+ <img src='https://github.com/rogerluan.png' width='140px;'>
59
59
  </a>
60
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
61
61
  </td>
62
- <td id='felix-krause'>
63
- <a href='https://github.com/KrauseFx'>
64
- <img src='https://github.com/KrauseFx.png?size=140'>
62
+ <td id='helmut-januschka'>
63
+ <a href='https://github.com/hjanuschka'>
64
+ <img src='https://github.com/hjanuschka.png' width='140px;'>
65
65
  </a>
66
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
67
67
  </td>
68
68
  </tr>
69
69
  <tr>
70
- <td id='jimmy-dee'>
71
- <a href='https://github.com/jdee'>
72
- <img src='https://github.com/jdee.png?size=140'>
70
+ <td id='jan-piotrowski'>
71
+ <a href='https://github.com/janpio'>
72
+ <img src='https://github.com/janpio.png' width='140px;'>
73
73
  </a>
74
- <h4 align='center'>Jimmy Dee</h4>
74
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
75
75
  </td>
76
- <td id='manu-wallner'>
77
- <a href='https://github.com/milch'>
78
- <img src='https://github.com/milch.png?size=140'>
76
+ <td id='fumiya-nakamura'>
77
+ <a href='https://github.com/nafu'>
78
+ <img src='https://github.com/nafu.png' width='140px;'>
79
79
  </a>
80
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
80
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
81
81
  </td>
82
- <td id='andrew-mcburney'>
83
- <a href='https://github.com/armcburney'>
84
- <img src='https://github.com/armcburney.png?size=140'>
82
+ <td id='matthew-ellis'>
83
+ <a href='https://github.com/matthewellis'>
84
+ <img src='https://github.com/matthewellis.png' width='140px;'>
85
85
  </a>
86
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
87
87
  </td>
88
- <td id='kohki-miki'>
89
- <a href='https://github.com/giginet'>
90
- <img src='https://github.com/giginet.png?size=140'>
88
+ <td id='josh-holtz'>
89
+ <a href='https://github.com/joshdholtz'>
90
+ <img src='https://github.com/joshdholtz.png' width='140px;'>
91
91
  </a>
92
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
93
93
  </td>
94
- <td id='roger-oba'>
95
- <a href='https://github.com/rogerluan'>
96
- <img src='https://github.com/rogerluan.png?size=140'>
94
+ <td id='danielle-tomlinson'>
95
+ <a href='https://github.com/endocrimes'>
96
+ <img src='https://github.com/endocrimes.png' width='140px;'>
97
97
  </a>
98
- <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
98
+ <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
99
99
  </td>
100
100
  </tr>
101
101
  <tr>
102
- <td id='jérôme-lacoste'>
103
- <a href='https://github.com/lacostej'>
104
- <img src='https://github.com/lacostej.png?size=140'>
102
+ <td id='kohki-miki'>
103
+ <a href='https://github.com/giginet'>
104
+ <img src='https://github.com/giginet.png' width='140px;'>
105
105
  </a>
106
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
106
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
107
107
  </td>
108
- <td id='luka-mirosevic'>
109
- <a href='https://github.com/lmirosevic'>
110
- <img src='https://github.com/lmirosevic.png?size=140'>
108
+ <td id='jimmy-dee'>
109
+ <a href='https://github.com/jdee'>
110
+ <img src='https://github.com/jdee.png' width='140px;'>
111
111
  </a>
112
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
112
+ <h4 align='center'>Jimmy Dee</h4>
113
113
  </td>
114
- <td id='fumiya-nakamura'>
115
- <a href='https://github.com/nafu'>
116
- <img src='https://github.com/nafu.png?size=140'>
114
+ <td id='manu-wallner'>
115
+ <a href='https://github.com/milch'>
116
+ <img src='https://github.com/milch.png' width='140px;'>
117
117
  </a>
118
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
119
119
  </td>
120
- <td id='aaron-brager'>
121
- <a href='https://github.com/getaaron'>
122
- <img src='https://github.com/getaaron.png?size=140'>
120
+ <td id='olivier-halligon'>
121
+ <a href='https://github.com/AliSoftware'>
122
+ <img src='https://github.com/AliSoftware.png' width='140px;'>
123
123
  </a>
124
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
125
125
  </td>
126
- <td id='matthew-ellis'>
127
- <a href='https://github.com/matthewellis'>
128
- <img src='https://github.com/matthewellis.png?size=140'>
126
+ <td id='daniel-jankowski'>
127
+ <a href='https://github.com/mollyIV'>
128
+ <img src='https://github.com/mollyIV.png' width='140px;'>
129
129
  </a>
130
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
131
131
  </td>
132
132
  </tr>
133
133
  <tr>
134
- <td id='jan-piotrowski'>
135
- <a href='https://github.com/janpio'>
136
- <img src='https://github.com/janpio.png?size=140'>
134
+ <td id='andrew-mcburney'>
135
+ <a href='https://github.com/armcburney'>
136
+ <img src='https://github.com/armcburney.png' width='140px;'>
137
137
  </a>
138
- <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
138
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
139
139
  </td>
140
- <td id='josh-holtz'>
141
- <a href='https://github.com/joshdholtz'>
142
- <img src='https://github.com/joshdholtz.png?size=140'>
140
+ <td id='joshua-liebowitz'>
141
+ <a href='https://github.com/taquitos'>
142
+ <img src='https://github.com/taquitos.png' width='140px;'>
143
143
  </a>
144
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
145
145
  </td>
146
- <td id='stefan-natchev'>
147
- <a href='https://github.com/snatchev'>
148
- <img src='https://github.com/snatchev.png?size=140'>
146
+ <td id='luka-mirosevic'>
147
+ <a href='https://github.com/lmirosevic'>
148
+ <img src='https://github.com/lmirosevic.png' width='140px;'>
149
149
  </a>
150
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
150
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
151
151
  </td>
152
- <td id='max-ott'>
153
- <a href='https://github.com/max-ott'>
154
- <img src='https://github.com/max-ott.png?size=140'>
152
+ <td id='iulian-onofrei'>
153
+ <a href='https://github.com/revolter'>
154
+ <img src='https://github.com/revolter.png' width='140px;'>
155
155
  </a>
156
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
156
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
157
157
  </td>
158
- <td id='maksym-grebenets'>
159
- <a href='https://github.com/mgrebenets'>
160
- <img src='https://github.com/mgrebenets.png?size=140'>
158
+ <td id='satoshi-namai'>
159
+ <a href='https://github.com/ainame'>
160
+ <img src='https://github.com/ainame.png' width='140px;'>
161
161
  </a>
162
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
163
163
  </td>
164
164
  </tr>
165
165
  <tr>
166
- <td id='joshua-liebowitz'>
167
- <a href='https://github.com/taquitos'>
168
- <img src='https://github.com/taquitos.png?size=140'>
166
+ <td id='manish-rathi'>
167
+ <a href='https://github.com/crazymanish'>
168
+ <img src='https://github.com/crazymanish.png' width='140px;'>
169
169
  </a>
170
- <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
170
+ <h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
171
171
  </td>
172
- <td id='helmut-januschka'>
173
- <a href='https://github.com/hjanuschka'>
174
- <img src='https://github.com/hjanuschka.png?size=140'>
172
+ <td id='stefan-natchev'>
173
+ <a href='https://github.com/snatchev'>
174
+ <img src='https://github.com/snatchev.png' width='140px;'>
175
175
  </a>
176
- <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
176
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
177
177
  </td>
178
- <td id='olivier-halligon'>
179
- <a href='https://github.com/AliSoftware'>
180
- <img src='https://github.com/AliSoftware.png?size=140'>
178
+ <td id='felix-krause'>
179
+ <a href='https://github.com/KrauseFx'>
180
+ <img src='https://github.com/KrauseFx.png' width='140px;'>
181
181
  </a>
182
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
182
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
183
183
  </td>
184
- <td id='jorge-revuelta-h'>
185
- <a href='https://github.com/minuscorp'>
186
- <img src='https://github.com/minuscorp.png?size=140'>
184
+ <td id='jérôme-lacoste'>
185
+ <a href='https://github.com/lacostej'>
186
+ <img src='https://github.com/lacostej.png' width='140px;'>
187
187
  </a>
188
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
188
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
189
189
  </td>
190
+ <td id='aaron-brager'>
191
+ <a href='https://github.com/getaaron'>
192
+ <img src='https://github.com/getaaron.png' width='140px;'>
193
+ </a>
194
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
195
+ </td>
196
+ </tr>
190
197
  </table>
191
198
 
192
199
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -20,9 +20,11 @@ module Cert
20
20
  end
21
21
 
22
22
  def login
23
- if api_token
23
+ if (api_token = Spaceship::ConnectAPI::Token.from(hash: Cert.config[:api_key], filepath: Cert.config[:api_key_path]))
24
24
  UI.message("Creating authorization token for App Store Connect API")
25
25
  Spaceship::ConnectAPI.token = api_token
26
+ elsif !Spaceship::ConnectAPI.token.nil?
27
+ UI.message("Using existing authorization token for App Store Connect API")
26
28
  else
27
29
  # Username is now optional since addition of App Store Connect API Key
28
30
  # Force asking for username to prompt user if not already set
@@ -34,12 +36,6 @@ module Cert
34
36
  end
35
37
  end
36
38
 
37
- def api_token
38
- @api_token ||= Spaceship::ConnectAPI::Token.create(**Cert.config[:api_key]) if Cert.config[:api_key]
39
- @api_token ||= Spaceship::ConnectAPI::Token.from_json_file(Cert.config[:api_key_path]) if Cert.config[:api_key_path]
40
- return @api_token
41
- end
42
-
43
39
  def run
44
40
  FileUtils.mkdir_p(Cert.config[:output_path])
45
41
 
@@ -91,7 +91,7 @@
91
91
 
92
92
  .app-changelog-list {
93
93
  list-style-type: square;
94
-
94
+
95
95
  font-weight: 300;
96
96
  }
97
97
 
@@ -137,10 +137,10 @@
137
137
  }
138
138
  </style>
139
139
  </head>
140
-
140
+
141
141
  <body>
142
142
  <div class="app-icons">
143
-
143
+
144
144
  <% if @options[:app_icon] %>
145
145
  <div class="app-icon">
146
146
  Large App Icon:<br>
@@ -182,7 +182,7 @@
182
182
  <% end %>
183
183
  <% end %>
184
184
  </div>
185
-
185
+
186
186
  <% if @options[:keywords] and @options[:keywords][language] %>
187
187
  <div class="app-keyword">
188
188
  <div class="cat-headline">Keywords</div>
@@ -193,7 +193,7 @@
193
193
  </ul>
194
194
  </div>
195
195
  <% end %>
196
-
196
+
197
197
  <% if @options[:description] %>
198
198
  <div class="app-description">
199
199
  <div class="cat-headline">Description</div>
@@ -202,7 +202,7 @@
202
202
  </div>
203
203
  </div>
204
204
  <% end %>
205
-
205
+
206
206
  <% if @options[:release_notes] %>
207
207
  <div class="app-changelog">
208
208
  <div class="cat-headline">Changelog</div>
@@ -216,7 +216,7 @@
216
216
  <%= (@options[:promotional_text][language] || '').gsub("\n", "<br />") %>
217
217
  </div>
218
218
  <% end %>
219
-
219
+
220
220
  <div class="app-screenshots">
221
221
  <div class="cat-headline">Screenshots</div>
222
222
 
@@ -237,7 +237,7 @@
237
237
  <div class="app-screenshot-row">
238
238
 
239
239
  <% screenshots.each_with_index do |screenshot, index| %>
240
- <a href="<%= URI.escape(screenshot.path) %>" target="_blank"><img class="app-screenshot" src="<%= render_relative_path(@export_path, URI.escape(screenshot.path)) %>" title="Screenshot #<%=index%> for <%=language%>"></a>
240
+ <a href="<%= render_relative_path(@export_path, Addressable::URI.encode(screenshot.path)) %>" target="_blank"><img class="app-screenshot" src="<%= render_relative_path(@export_path, Addressable::URI.encode(screenshot.path)) %>" title="Screenshot #<%=index%> for <%=language%>"></a>
241
241
  <% end %>
242
242
  </div>
243
243
  <% end %>
@@ -250,7 +250,7 @@
250
250
  <% if options[:overwrite_screenshots] %>
251
251
  <b>--overwrite_screenshots</b> is set, existing screenshots will be removed, but none will be uploaded.
252
252
  <% else %>
253
- The existing screenshots on App Store Connect will be kept.
253
+ The existing screenshots on App Store Connect will be kept.
254
254
  if you want to remove them you have to use the <i>--overwrite_screenshots</i> flag.
255
255
  <% end %>
256
256
  <p>
@@ -259,7 +259,7 @@
259
259
  </div>
260
260
  <% end %>
261
261
  </div>
262
-
262
+
263
263
  <hr />
264
264
  <% end # end data
265
265
  %>
@@ -168,7 +168,7 @@ module Deliver
168
168
  return 0 unless res
169
169
 
170
170
  require 'deliver/setup'
171
- app = options[:app]
171
+ app = Deliver.cache[:app]
172
172
  platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
173
173
  v = app.get_latest_app_store_version(platform: platform)
174
174
  if options[:app_version].to_s.length > 0
@@ -10,6 +10,8 @@ require_relative 'languages'
10
10
  module Deliver
11
11
  class DetectValues
12
12
  def run!(options, skip_params = {})
13
+ Deliver.cache = {}
14
+
13
15
  find_platform(options)
14
16
  find_app_identifier(options)
15
17
  find_app(options)
@@ -46,9 +48,9 @@ module Deliver
46
48
  app = Spaceship::ConnectAPI::App.get(app_id: app_id)
47
49
  end
48
50
 
49
- if app
50
- options[:app] = app
51
- else
51
+ Deliver.cache[:app] = app
52
+
53
+ unless app
52
54
  UI.user_error!("Could not find app with app identifier '#{options[:app_identifier]}' in your App Store Connect account (#{options[:username]} - Team: #{Spaceship::Tunes.client.team_id})")
53
55
  end
54
56
  end
@@ -13,7 +13,7 @@ module Deliver
13
13
  end
14
14
 
15
15
  def self.download(options, folder_path)
16
- app = options[:app]
16
+ app = Deliver.cache[:app]
17
17
 
18
18
  platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
19
19
  if options[:use_live_version]
@@ -50,12 +50,12 @@ module Deliver
50
50
  @export_path = export_path
51
51
 
52
52
  @app_name = (options[:name]['en-US'] || options[:name].values.first) if options[:name]
53
- @app_name ||= options[:app].name
53
+ @app_name ||= Deliver.cache[:app].name
54
54
 
55
55
  @languages = options[:description].keys if options[:description]
56
56
  @languages ||= begin
57
57
  platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
58
- version = options[:app].get_edit_app_store_version(platform: platform)
58
+ version = Deliver.cache[:app].get_edit_app_store_version(platform: platform)
59
59
 
60
60
  version.get_app_store_version_localizations.collect(&:locale)
61
61
  end
@@ -4,6 +4,12 @@ require 'fastlane/boolean'
4
4
 
5
5
  module Deliver
6
6
  class << self
7
+ attr_accessor :cache
8
+
9
+ def cache
10
+ @cache ||= {}
11
+ @cache
12
+ end
7
13
  end
8
14
 
9
15
  Helper = FastlaneCore::Helper # you gotta love Ruby: Helper.* should use the Helper class contained in FastlaneCore