fastlane 2.181.0 → 2.184.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +90 -90
  3. data/cert/lib/cert/commands_generator.rb +2 -1
  4. data/cert/lib/cert/runner.rb +3 -7
  5. data/deliver/lib/assets/summary.html.erb +10 -10
  6. data/deliver/lib/deliver/commands_generator.rb +3 -2
  7. data/deliver/lib/deliver/detect_values.rb +5 -3
  8. data/deliver/lib/deliver/download_screenshots.rb +1 -1
  9. data/deliver/lib/deliver/html_generator.rb +2 -2
  10. data/deliver/lib/deliver/languages.rb +1 -1
  11. data/deliver/lib/deliver/module.rb +6 -0
  12. data/deliver/lib/deliver/options.rb +38 -53
  13. data/deliver/lib/deliver/runner.rb +8 -11
  14. data/deliver/lib/deliver/setup.rb +1 -1
  15. data/deliver/lib/deliver/submit_for_review.rb +4 -4
  16. data/deliver/lib/deliver/upload_metadata.rb +20 -6
  17. data/deliver/lib/deliver/upload_price_tier.rb +1 -1
  18. data/deliver/lib/deliver/upload_screenshots.rb +1 -1
  19. data/fastlane/lib/fastlane/actions/actions_helper.rb +2 -2
  20. data/fastlane/lib/fastlane/actions/app_store_build_number.rb +7 -11
  21. data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +12 -2
  22. data/fastlane/lib/fastlane/actions/backup_xcarchive.rb +1 -1
  23. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +5 -1
  24. data/fastlane/lib/fastlane/actions/danger.rb +7 -1
  25. data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
  26. data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +18 -1
  27. data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +32 -12
  28. data/fastlane/lib/fastlane/actions/get_certificates.rb +5 -1
  29. data/fastlane/lib/fastlane/actions/get_managed_play_store_publishing_rights.rb +3 -1
  30. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +5 -1
  31. data/fastlane/lib/fastlane/actions/git_commit.rb +3 -1
  32. data/fastlane/lib/fastlane/actions/git_pull.rb +4 -10
  33. data/fastlane/lib/fastlane/actions/git_submodule_update.rb +16 -8
  34. data/fastlane/lib/fastlane/actions/hipchat.rb +2 -1
  35. data/fastlane/lib/fastlane/actions/import_from_git.rb +5 -5
  36. data/fastlane/lib/fastlane/actions/notification.rb +1 -1
  37. data/fastlane/lib/fastlane/actions/register_device.rb +7 -10
  38. data/fastlane/lib/fastlane/actions/register_devices.rb +7 -10
  39. data/fastlane/lib/fastlane/actions/set_changelog.rb +7 -10
  40. data/fastlane/lib/fastlane/actions/slack.rb +19 -18
  41. data/fastlane/lib/fastlane/actions/swiftlint.rb +16 -4
  42. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +6 -1
  43. data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +4 -2
  44. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +5 -1
  45. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +2 -1
  46. data/fastlane/lib/fastlane/actions/xcodebuild.rb +5 -5
  47. data/fastlane/lib/fastlane/cli_tools_distributor.rb +1 -1
  48. data/fastlane/lib/fastlane/commands_generator.rb +2 -1
  49. data/fastlane/lib/fastlane/fast_file.rb +10 -2
  50. data/fastlane/lib/fastlane/notification/slack.rb +56 -0
  51. data/fastlane/lib/fastlane/plugins/plugin_info.rb +2 -2
  52. data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +7 -6
  53. data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +30 -35
  54. data/fastlane/lib/fastlane/plugins/template/spec/spec_helper.rb.erb +1 -1
  55. data/fastlane/lib/fastlane/swift_fastlane_function.rb +37 -14
  56. data/fastlane/lib/fastlane/version.rb +2 -2
  57. data/fastlane/swift/Deliverfile.swift +1 -1
  58. data/fastlane/swift/DeliverfileProtocol.swift +20 -20
  59. data/fastlane/swift/Fastlane.swift +6749 -3708
  60. data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +4 -0
  61. data/fastlane/swift/Gymfile.swift +1 -1
  62. data/fastlane/swift/GymfileProtocol.swift +1 -1
  63. data/fastlane/swift/Matchfile.swift +1 -1
  64. data/fastlane/swift/MatchfileProtocol.swift +1 -1
  65. data/fastlane/swift/OptionalConfigValue.swift +101 -0
  66. data/fastlane/swift/Precheckfile.swift +1 -1
  67. data/fastlane/swift/PrecheckfileProtocol.swift +1 -1
  68. data/fastlane/swift/Scanfile.swift +1 -1
  69. data/fastlane/swift/ScanfileProtocol.swift +1 -1
  70. data/fastlane/swift/Screengrabfile.swift +1 -1
  71. data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
  72. data/fastlane/swift/Snapshotfile.swift +1 -1
  73. data/fastlane/swift/SnapshotfileProtocol.swift +5 -1
  74. data/fastlane/swift/formatting/Brewfile.lock.json +12 -12
  75. data/fastlane/swift/upgrade_manifest.json +1 -1
  76. data/fastlane_core/lib/fastlane_core/build_watcher.rb +39 -3
  77. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +5 -0
  78. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +2 -0
  79. data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
  80. data/fastlane_core/lib/fastlane_core/device_manager.rb +1 -1
  81. data/fastlane_core/lib/fastlane_core/helper.rb +4 -4
  82. data/fastlane_core/lib/fastlane_core/languages.rb +2 -2
  83. data/fastlane_core/lib/fastlane_core/swag.rb +1 -1
  84. data/fastlane_core/lib/fastlane_core/ui/help.erb +35 -0
  85. data/fastlane_core/lib/fastlane_core/ui/help_formatter.rb +16 -0
  86. data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +4 -1
  87. data/frameit/lib/frameit/commands_generator.rb +2 -1
  88. data/frameit/lib/frameit/config_parser.rb +2 -2
  89. data/frameit/lib/frameit/frame_downloader.rb +2 -1
  90. data/gym/lib/gym/code_signing_mapping.rb +2 -2
  91. data/gym/lib/gym/commands_generator.rb +2 -1
  92. data/gym/lib/gym/generators/package_command_generator_xcode7.rb +6 -5
  93. data/match/lib/match/commands_generator.rb +2 -1
  94. data/match/lib/match/importer.rb +6 -10
  95. data/match/lib/match/migrate.rb +2 -3
  96. data/match/lib/match/nuke.rb +3 -7
  97. data/match/lib/match/runner.rb +2 -3
  98. data/match/lib/match/spaceship_ensure.rb +3 -0
  99. data/match/lib/match/storage/google_cloud_storage.rb +2 -2
  100. data/match/lib/match/storage/s3_storage.rb +2 -2
  101. data/pem/lib/pem/commands_generator.rb +2 -1
  102. data/pilot/lib/pilot/build_manager.rb +5 -3
  103. data/pilot/lib/pilot/commands_generator.rb +2 -1
  104. data/pilot/lib/pilot/manager.rb +3 -7
  105. data/pilot/lib/pilot/options.rb +10 -2
  106. data/pilot/lib/pilot/tester_exporter.rb +0 -1
  107. data/pilot/lib/pilot/tester_manager.rb +0 -1
  108. data/precheck/lib/precheck/commands_generator.rb +2 -1
  109. data/precheck/lib/precheck/runner.rb +8 -7
  110. data/produce/lib/produce/commands_generator.rb +2 -1
  111. data/scan/lib/scan/commands_generator.rb +2 -1
  112. data/scan/lib/scan/runner.rb +1 -1
  113. data/screengrab/lib/screengrab/commands_generator.rb +2 -1
  114. data/sigh/lib/assets/resign.sh +77 -46
  115. data/sigh/lib/sigh/commands_generator.rb +2 -1
  116. data/sigh/lib/sigh/download_all.rb +4 -8
  117. data/sigh/lib/sigh/runner.rb +4 -8
  118. data/snapshot/lib/assets/SnapfileTemplate +1 -1
  119. data/snapshot/lib/snapshot/commands_generator.rb +3 -1
  120. data/snapshot/lib/snapshot/options.rb +5 -0
  121. data/snapshot/lib/snapshot/simulator_launchers/launcher_configuration.rb +2 -0
  122. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
  123. data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +8 -4
  124. data/spaceship/README.md +2 -2
  125. data/spaceship/lib/spaceship/base.rb +2 -2
  126. data/spaceship/lib/spaceship/commands_generator.rb +2 -1
  127. data/spaceship/lib/spaceship/connect_api/model.rb +1 -1
  128. data/spaceship/lib/spaceship/connect_api/models/.age_rating_declaration.rb.swp +0 -0
  129. data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +35 -4
  130. data/spaceship/lib/spaceship/connect_api/models/app_info.rb +10 -0
  131. data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +2 -3
  132. data/spaceship/lib/spaceship/connect_api/models/profile.rb +6 -0
  133. data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +6 -2
  134. data/spaceship/lib/spaceship/connect_api/token.rb +6 -0
  135. data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +4 -2
  136. data/spaceship/lib/spaceship/ui.rb +2 -2
  137. data/supply/lib/supply/client.rb +2 -2
  138. data/supply/lib/supply/commands_generator.rb +2 -1
  139. data/supply/lib/supply/uploader.rb +2 -2
  140. metadata +74 -86
  141. data/pilot/lib/pilot/tester_util.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 38bb5919faa63d99767d24690442b21a5d481b03afe68a1832e4d3d1a4e28e29
4
- data.tar.gz: 5553432685d7e0474eec0b6a76e932834ae0afd741f0ac02af7e1ec2b755af80
3
+ metadata.gz: c8a9d0fade7d8368a2ece893d0142c9b22d103b890653d286e7c08de844016ac
4
+ data.tar.gz: c61acc200330d009626673188948f3c554afcfabecb8ba45e91bd9b697a636ec
5
5
  SHA512:
6
- metadata.gz: 6c6db2341264725bb9af7c225cacd888a044949311402de5d9cd0c917a73ffcccf4627adee7d160a1fe46e1e150d855dbd41951b0d50a06dd97fc27f8b78888f
7
- data.tar.gz: 384e80ffe1b82abd1b84b2f09e7367da9e8cfbf5ce2427ccb61b62b738a1b91ff5091da839afc23d7ddec123d16d0e3ff8f3186eef3fc41b9e547a7a685b63e4
6
+ metadata.gz: a24b27118a95a7b1c36cbc0710b7bcf9357d52d4c362805ee9e4f84574c7dae49cf09fc4abd6286054a4b330c67a23e1ea349e47e1d27ba6eba3dcd9e9319b82
7
+ data.tar.gz: 006fd0a41af019175f59dd1a1571611a0255f32c45bdc6a5bebe0fbfc3191b5163981a87b12bd77e38f659406b3687ad15cb8ae9945c7e8d46fc2bb4bc4de562
data/README.md CHANGED
@@ -35,113 +35,119 @@ 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='matthew-ellis'>
39
- <a href='https://github.com/matthewellis'>
40
- <img src='https://github.com/matthewellis.png?size=140'>
38
+ <td id='iulian-onofrei'>
39
+ <a href='https://github.com/revolter'>
40
+ <img src='https://github.com/revolter.png?size=140'>
41
41
  </a>
42
- <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
42
+ <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</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='jimmy-dee'>
45
+ <a href='https://github.com/jdee'>
46
+ <img src='https://github.com/jdee.png?size=140'>
47
47
  </a>
48
- <h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
48
+ <h4 align='center'>Jimmy Dee</h4>
49
49
  </td>
50
- <td id='satoshi-namai'>
51
- <a href='https://github.com/ainame'>
52
- <img src='https://github.com/ainame.png?size=140'>
50
+ <td id='kohki-miki'>
51
+ <a href='https://github.com/giginet'>
52
+ <img src='https://github.com/giginet.png?size=140'>
53
53
  </a>
54
- <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
54
+ <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
55
55
  </td>
56
- <td id='olivier-halligon'>
57
- <a href='https://github.com/AliSoftware'>
58
- <img src='https://github.com/AliSoftware.png?size=140'>
56
+ <td id='josh-holtz'>
57
+ <a href='https://github.com/joshdholtz'>
58
+ <img src='https://github.com/joshdholtz.png?size=140'>
59
59
  </a>
60
- <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
60
+ <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
61
61
  </td>
62
- <td id='max-ott'>
63
- <a href='https://github.com/max-ott'>
64
- <img src='https://github.com/max-ott.png?size=140'>
62
+ <td id='aaron-brager'>
63
+ <a href='https://github.com/getaaron'>
64
+ <img src='https://github.com/getaaron.png?size=140'>
65
65
  </a>
66
- <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
66
+ <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</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?size=140'>
70
+ <td id='stefan-natchev'>
71
+ <a href='https://github.com/snatchev'>
72
+ <img src='https://github.com/snatchev.png?size=140'>
73
73
  </a>
74
- <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
74
+ <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
75
75
  </td>
76
- <td id='felix-krause'>
77
- <a href='https://github.com/KrauseFx'>
78
- <img src='https://github.com/KrauseFx.png?size=140'>
76
+ <td id='manu-wallner'>
77
+ <a href='https://github.com/milch'>
78
+ <img src='https://github.com/milch.png?size=140'>
79
79
  </a>
80
- <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
80
+ <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
81
81
  </td>
82
- <td id='iulian-onofrei'>
83
- <a href='https://github.com/revolter'>
84
- <img src='https://github.com/revolter.png?size=140'>
82
+ <td id='jorge-revuelta-h'>
83
+ <a href='https://github.com/minuscorp'>
84
+ <img src='https://github.com/minuscorp.png?size=140'>
85
85
  </a>
86
- <h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
86
+ <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
87
87
  </td>
88
- <td id='luka-mirosevic'>
89
- <a href='https://github.com/lmirosevic'>
90
- <img src='https://github.com/lmirosevic.png?size=140'>
88
+ <td id='satoshi-namai'>
89
+ <a href='https://github.com/ainame'>
90
+ <img src='https://github.com/ainame.png?size=140'>
91
91
  </a>
92
- <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
92
+ <h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
93
93
  </td>
94
- <td id='fumiya-nakamura'>
95
- <a href='https://github.com/nafu'>
96
- <img src='https://github.com/nafu.png?size=140'>
94
+ <td id='jan-piotrowski'>
95
+ <a href='https://github.com/janpio'>
96
+ <img src='https://github.com/janpio.png?size=140'>
97
97
  </a>
98
- <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
98
+ <h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
99
99
  </td>
100
100
  </tr>
101
101
  <tr>
102
- <td id='jorge-revuelta-h'>
103
- <a href='https://github.com/minuscorp'>
104
- <img src='https://github.com/minuscorp.png?size=140'>
102
+ <td id='felix-krause'>
103
+ <a href='https://github.com/KrauseFx'>
104
+ <img src='https://github.com/KrauseFx.png?size=140'>
105
105
  </a>
106
- <h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
106
+ <h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
107
107
  </td>
108
- <td id='manu-wallner'>
109
- <a href='https://github.com/milch'>
110
- <img src='https://github.com/milch.png?size=140'>
108
+ <td id='fumiya-nakamura'>
109
+ <a href='https://github.com/nafu'>
110
+ <img src='https://github.com/nafu.png?size=140'>
111
111
  </a>
112
- <h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
112
+ <h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
113
113
  </td>
114
- <td id='daniel-jankowski'>
115
- <a href='https://github.com/mollyIV'>
116
- <img src='https://github.com/mollyIV.png?size=140'>
114
+ <td id='andrew-mcburney'>
115
+ <a href='https://github.com/armcburney'>
116
+ <img src='https://github.com/armcburney.png?size=140'>
117
117
  </a>
118
- <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
118
+ <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
119
119
  </td>
120
- <td id='jérôme-lacoste'>
121
- <a href='https://github.com/lacostej'>
122
- <img src='https://github.com/lacostej.png?size=140'>
120
+ <td id='luka-mirosevic'>
121
+ <a href='https://github.com/lmirosevic'>
122
+ <img src='https://github.com/lmirosevic.png?size=140'>
123
123
  </a>
124
- <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
124
+ <h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
125
125
  </td>
126
- <td id='aaron-brager'>
127
- <a href='https://github.com/getaaron'>
128
- <img src='https://github.com/getaaron.png?size=140'>
126
+ <td id='olivier-halligon'>
127
+ <a href='https://github.com/AliSoftware'>
128
+ <img src='https://github.com/AliSoftware.png?size=140'>
129
129
  </a>
130
- <h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
130
+ <h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</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='danielle-tomlinson'>
135
+ <a href='https://github.com/endocrimes'>
136
+ <img src='https://github.com/endocrimes.png?size=140'>
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/endocrimes'>Danielle Tomlinson</a></h4>
139
139
  </td>
140
- <td id='andrew-mcburney'>
141
- <a href='https://github.com/armcburney'>
142
- <img src='https://github.com/armcburney.png?size=140'>
140
+ <td id='max-ott'>
141
+ <a href='https://github.com/max-ott'>
142
+ <img src='https://github.com/max-ott.png?size=140'>
143
143
  </a>
144
- <h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
144
+ <h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
145
+ </td>
146
+ <td id='matthew-ellis'>
147
+ <a href='https://github.com/matthewellis'>
148
+ <img src='https://github.com/matthewellis.png?size=140'>
149
+ </a>
150
+ <h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
145
151
  </td>
146
152
  <td id='joshua-liebowitz'>
147
153
  <a href='https://github.com/taquitos'>
@@ -149,44 +155,38 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
149
155
  </a>
150
156
  <h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
151
157
  </td>
152
- <td id='stefan-natchev'>
153
- <a href='https://github.com/snatchev'>
154
- <img src='https://github.com/snatchev.png?size=140'>
155
- </a>
156
- <h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
157
- </td>
158
- <td id='josh-holtz'>
159
- <a href='https://github.com/joshdholtz'>
160
- <img src='https://github.com/joshdholtz.png?size=140'>
158
+ <td id='daniel-jankowski'>
159
+ <a href='https://github.com/mollyIV'>
160
+ <img src='https://github.com/mollyIV.png?size=140'>
161
161
  </a>
162
- <h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
162
+ <h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
163
163
  </td>
164
164
  </tr>
165
165
  <tr>
166
- <td id='jimmy-dee'>
167
- <a href='https://github.com/jdee'>
168
- <img src='https://github.com/jdee.png?size=140'>
169
- </a>
170
- <h4 align='center'>Jimmy Dee</h4>
171
- </td>
172
- <td id='kohki-miki'>
173
- <a href='https://github.com/giginet'>
174
- <img src='https://github.com/giginet.png?size=140'>
175
- </a>
176
- <h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
177
- </td>
178
166
  <td id='roger-oba'>
179
167
  <a href='https://github.com/rogerluan'>
180
168
  <img src='https://github.com/rogerluan.png?size=140'>
181
169
  </a>
182
170
  <h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
183
171
  </td>
172
+ <td id='maksym-grebenets'>
173
+ <a href='https://github.com/mgrebenets'>
174
+ <img src='https://github.com/mgrebenets.png?size=140'>
175
+ </a>
176
+ <h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
177
+ </td>
184
178
  <td id='helmut-januschka'>
185
179
  <a href='https://github.com/hjanuschka'>
186
180
  <img src='https://github.com/hjanuschka.png?size=140'>
187
181
  </a>
188
182
  <h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
189
183
  </td>
184
+ <td id='jérôme-lacoste'>
185
+ <a href='https://github.com/lacostej'>
186
+ <img src='https://github.com/lacostej.png?size=140'>
187
+ </a>
188
+ <h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
189
+ </td>
190
190
  </table>
191
191
 
192
192
  Special thanks to all [contributors](https://github.com/fastlane/fastlane/graphs/contributors) for extending and improving _fastlane_.
@@ -1,5 +1,6 @@
1
1
  require 'commander'
2
2
  require 'fastlane/version'
3
+ require 'fastlane_core/ui/help_formatter'
3
4
  require 'fastlane_core/configuration/configuration'
4
5
  require 'fastlane_core/globals'
5
6
 
@@ -23,7 +24,7 @@ module Cert
23
24
  program :help, 'Author', 'Felix Krause <cert@krausefx.com>'
24
25
  program :help, 'Website', 'https://fastlane.tools'
25
26
  program :help, 'Documentation', 'https://docs.fastlane.tools/actions/cert/'
26
- program :help_formatter, :compact
27
+ program :help_formatter, FastlaneCore::HelpFormatter
27
28
 
28
29
  global_option('--verbose') { FastlaneCore::Globals.verbose = true }
29
30
  global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
@@ -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
  %>
@@ -1,5 +1,6 @@
1
1
  require 'commander'
2
2
  require 'fastlane/version'
3
+ require 'fastlane_core/ui/help_formatter'
3
4
 
4
5
  require_relative 'download_screenshots'
5
6
  require_relative 'options'
@@ -48,7 +49,7 @@ module Deliver
48
49
  program :help, 'Author', 'Felix Krause <deliver@krausefx.com>'
49
50
  program :help, 'Website', 'https://fastlane.tools'
50
51
  program :help, 'Documentation', 'https://docs.fastlane.tools/actions/deliver/'
51
- program :help_formatter, :compact
52
+ program :help_formatter, FastlaneCore::HelpFormatter
52
53
 
53
54
  global_option('--verbose') { FastlaneCore::Globals.verbose = true }
54
55
  global_option('--env STRING[,STRING2]', String, 'Add environment(s) to use with `dotenv`')
@@ -167,7 +168,7 @@ module Deliver
167
168
  return 0 unless res
168
169
 
169
170
  require 'deliver/setup'
170
- app = options[:app]
171
+ app = Deliver.cache[:app]
171
172
  platform = Spaceship::ConnectAPI::Platform.map(options[:platform])
172
173
  v = app.get_latest_app_store_version(platform: platform)
173
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