fastlane 2.171.0 → 2.176.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +82 -82
- data/cert/lib/cert/options.rb +2 -2
- data/deliver/lib/deliver/commands_generator.rb +1 -1
- data/deliver/lib/deliver/options.rb +2 -2
- data/deliver/lib/deliver/runner.rb +1 -1
- data/deliver/lib/deliver/setup.rb +8 -3
- data/deliver/lib/deliver/upload_screenshots.rb +2 -1
- data/fastlane/lib/fastlane/actions/adb.rb +1 -1
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +2 -2
- data/fastlane/lib/fastlane/actions/app_store_connect_api_key.rb +1 -0
- data/fastlane/lib/fastlane/actions/appetize.rb +13 -1
- data/fastlane/lib/fastlane/actions/artifactory.rb +36 -3
- data/fastlane/lib/fastlane/actions/build_and_upload_to_appetize.rb +10 -2
- data/fastlane/lib/fastlane/actions/build_app.rb +3 -1
- data/fastlane/lib/fastlane/actions/carthage.rb +22 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +15 -1
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +16 -1
- data/fastlane/lib/fastlane/actions/create_xcframework.rb +118 -0
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +8 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +5 -16
- data/fastlane/lib/fastlane/actions/git_commit.rb +9 -5
- data/fastlane/lib/fastlane/actions/jazzy.rb +10 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +1 -1
- data/fastlane/lib/fastlane/actions/register_device.rb +3 -3
- data/fastlane/lib/fastlane/actions/register_devices.rb +4 -3
- data/fastlane/lib/fastlane/actions/set_changelog.rb +2 -2
- data/fastlane/lib/fastlane/actions/swiftlint.rb +4 -4
- data/fastlane/lib/fastlane/actions/update_code_signing_settings.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +5 -1
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +3 -0
- data/fastlane/lib/fastlane/documentation/actions_list.rb +2 -2
- data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
- data/fastlane/lib/fastlane/helper/gem_helper.rb +2 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +165 -32
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +11 -3
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +2 -2
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +2 -2
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +14 -2
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +14 -2
- data/fastlane/swift/SocketClient.swift +1 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/formatting/Brewfile.lock.json +20 -14
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -9
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +23 -0
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +9 -5
- data/fastlane_core/lib/fastlane_core/helper.rb +27 -6
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +41 -16
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +1 -1
- data/fastlane_core/lib/fastlane_core/project.rb +41 -14
- data/fastlane_core/lib/fastlane_core/update_checker/update_checker.rb +2 -2
- data/frameit/lib/frameit/device_types.rb +7 -1
- data/gym/lib/gym/error_handler.rb +8 -0
- data/gym/lib/gym/generators/build_command_generator.rb +3 -1
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +2 -2
- data/gym/lib/gym/options.rb +12 -2
- data/match/lib/match/nuke.rb +5 -0
- data/match/lib/match/options.rb +2 -2
- data/pilot/lib/pilot/.build_manager.rb.swp +0 -0
- data/pilot/lib/pilot/build_manager.rb +7 -2
- data/pilot/lib/pilot/options.rb +3 -3
- data/precheck/lib/precheck/options.rb +2 -2
- data/precheck/lib/precheck/runner.rb +1 -1
- data/scan/lib/scan/options.rb +15 -0
- data/scan/lib/scan/runner.rb +33 -1
- data/scan/lib/scan/slack_poster.rb +3 -1
- data/scan/lib/scan/test_command_generator.rb +3 -1
- data/screengrab/lib/screengrab/android_environment.rb +2 -2
- data/screengrab/lib/screengrab/runner.rb +1 -2
- data/sigh/lib/sigh/options.rb +2 -2
- data/snapshot/lib/assets/SnapshotHelper.swift +1 -1
- data/snapshot/lib/snapshot/options.rb +16 -1
- data/snapshot/lib/snapshot/update.rb +1 -1
- data/spaceship/README.md +2 -2
- data/spaceship/lib/spaceship/client.rb +14 -1
- data/spaceship/lib/spaceship/connect_api/api_client.rb +16 -1
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +3 -1
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +9 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id.rb +24 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +26 -4
- data/spaceship/lib/spaceship/connect_api/models/device.rb +26 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +53 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/token.rb +1 -1
- data/spaceship/lib/spaceship/playground.rb +2 -2
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -2
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +42 -28
- data/spaceship/lib/spaceship/upgrade_2fa_later_client.rb +91 -0
- metadata +51 -23
- data/fastlane/lib/fastlane/actions/.download_dsyms.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.github_api.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.set_github_release.rb.swp +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ba261e1e70a178f818c12e9f44a9da7d339da6f103aad678777f0a66592bf97
|
4
|
+
data.tar.gz: f1b3689af027c08af744d5a25a4dedb5b1e96ca89ed61cc30c30756526726117
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f45f74114acc9ad5585743e3a352e75ebc2bb671372206d217c3d5bcb14c79bd7fe672b6b35cb94068bc9dbc66c7942a9afbb27680d37233f37f9c0bc780d7a
|
7
|
+
data.tar.gz: dd59ef529c0ac9f650dfe8afb9ce18ea4dbec6c0b637fb57ff9f52105399558f63186c97b795531536fd557af10ef5b05e3d8010cb40b2444a6e5bbc4368f409
|
data/README.md
CHANGED
@@ -34,11 +34,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
34
34
|
<!-- This table is regenerated and resorted on each release -->
|
35
35
|
<table id='team'>
|
36
36
|
<tr>
|
37
|
-
<td id='
|
38
|
-
<a href='https://github.com/
|
39
|
-
<img src='https://github.com/
|
37
|
+
<td id='matthew-ellis'>
|
38
|
+
<a href='https://github.com/matthewellis'>
|
39
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
40
40
|
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
42
|
+
</td>
|
43
|
+
<td id='maksym-grebenets'>
|
44
|
+
<a href='https://github.com/mgrebenets'>
|
45
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
46
|
+
</a>
|
47
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
42
48
|
</td>
|
43
49
|
<td id='aaron-brager'>
|
44
50
|
<a href='https://github.com/getaaron'>
|
@@ -46,69 +52,69 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
46
52
|
</a>
|
47
53
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
48
54
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
52
|
-
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
54
|
-
</td>
|
55
|
-
<td id='maksym-grebenets'>
|
56
|
-
<a href='https://github.com/mgrebenets'>
|
57
|
-
<img src='https://github.com/mgrebenets.png?size=140'>
|
55
|
+
<td id='jorge-revuelta-h'>
|
56
|
+
<a href='https://github.com/minuscorp'>
|
57
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
58
58
|
</a>
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
60
60
|
</td>
|
61
|
-
<td id='
|
62
|
-
<a href='https://github.com/
|
63
|
-
<img src='https://github.com/
|
61
|
+
<td id='felix-krause'>
|
62
|
+
<a href='https://github.com/KrauseFx'>
|
63
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
64
64
|
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
65
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
66
66
|
</td>
|
67
67
|
</tr>
|
68
68
|
<tr>
|
69
|
-
<td id='
|
70
|
-
<a href='https://github.com/
|
71
|
-
<img src='https://github.com/
|
69
|
+
<td id='jimmy-dee'>
|
70
|
+
<a href='https://github.com/jdee'>
|
71
|
+
<img src='https://github.com/jdee.png?size=140'>
|
72
72
|
</a>
|
73
|
-
<h4 align='center'
|
73
|
+
<h4 align='center'>Jimmy Dee</h4>
|
74
74
|
</td>
|
75
|
-
<td id='
|
76
|
-
<a href='https://github.com/
|
77
|
-
<img src='https://github.com/
|
75
|
+
<td id='kohki-miki'>
|
76
|
+
<a href='https://github.com/giginet'>
|
77
|
+
<img src='https://github.com/giginet.png?size=140'>
|
78
78
|
</a>
|
79
|
-
<h4 align='center'><a href='https://twitter.com/
|
79
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
80
80
|
</td>
|
81
|
-
<td id='
|
82
|
-
<a href='https://github.com/
|
83
|
-
<img src='https://github.com/
|
81
|
+
<td id='stefan-natchev'>
|
82
|
+
<a href='https://github.com/snatchev'>
|
83
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
84
84
|
</a>
|
85
|
-
<h4 align='center'><a href='https://twitter.com/
|
85
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
86
86
|
</td>
|
87
|
-
<td id='
|
88
|
-
<a href='https://github.com/
|
89
|
-
<img src='https://github.com/
|
87
|
+
<td id='joshua-liebowitz'>
|
88
|
+
<a href='https://github.com/taquitos'>
|
89
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
90
90
|
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/
|
91
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
92
92
|
</td>
|
93
|
-
<td id='
|
94
|
-
<a href='https://github.com/
|
95
|
-
<img src='https://github.com/
|
93
|
+
<td id='fumiya-nakamura'>
|
94
|
+
<a href='https://github.com/nafu'>
|
95
|
+
<img src='https://github.com/nafu.png?size=140'>
|
96
96
|
</a>
|
97
|
-
<h4 align='center'>
|
97
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
98
98
|
</td>
|
99
99
|
</tr>
|
100
100
|
<tr>
|
101
|
-
<td id='
|
102
|
-
<a href='https://github.com/
|
103
|
-
<img src='https://github.com/
|
101
|
+
<td id='andrew-mcburney'>
|
102
|
+
<a href='https://github.com/armcburney'>
|
103
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
104
104
|
</a>
|
105
|
-
<h4 align='center'><a href='https://twitter.com/
|
105
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
106
106
|
</td>
|
107
|
-
<td id='
|
108
|
-
<a href='https://github.com/
|
109
|
-
<img src='https://github.com/
|
107
|
+
<td id='olivier-halligon'>
|
108
|
+
<a href='https://github.com/AliSoftware'>
|
109
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
110
110
|
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/
|
111
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
112
|
+
</td>
|
113
|
+
<td id='jérôme-lacoste'>
|
114
|
+
<a href='https://github.com/lacostej'>
|
115
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
116
|
+
</a>
|
117
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
112
118
|
</td>
|
113
119
|
<td id='jan-piotrowski'>
|
114
120
|
<a href='https://github.com/janpio'>
|
@@ -116,43 +122,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
116
122
|
</a>
|
117
123
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
118
124
|
</td>
|
119
|
-
<td id='
|
120
|
-
<a href='https://github.com/
|
121
|
-
<img src='https://github.com/
|
122
|
-
</a>
|
123
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
124
|
-
</td>
|
125
|
-
<td id='andrew-mcburney'>
|
126
|
-
<a href='https://github.com/armcburney'>
|
127
|
-
<img src='https://github.com/armcburney.png?size=140'>
|
125
|
+
<td id='danielle-tomlinson'>
|
126
|
+
<a href='https://github.com/endocrimes'>
|
127
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
128
128
|
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/
|
129
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
130
130
|
</td>
|
131
131
|
</tr>
|
132
132
|
<tr>
|
133
|
-
<td id='
|
134
|
-
<a href='https://github.com/
|
135
|
-
<img src='https://github.com/
|
136
|
-
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
138
|
-
</td>
|
139
|
-
<td id='iulian-onofrei'>
|
140
|
-
<a href='https://github.com/revolter'>
|
141
|
-
<img src='https://github.com/revolter.png?size=140'>
|
133
|
+
<td id='luka-mirosevic'>
|
134
|
+
<a href='https://github.com/lmirosevic'>
|
135
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
142
136
|
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
144
138
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
139
|
+
<td id='helmut-januschka'>
|
140
|
+
<a href='https://github.com/hjanuschka'>
|
141
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
148
142
|
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/
|
143
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
150
144
|
</td>
|
151
|
-
<td id='
|
152
|
-
<a href='https://github.com/
|
153
|
-
<img src='https://github.com/
|
145
|
+
<td id='max-ott'>
|
146
|
+
<a href='https://github.com/max-ott'>
|
147
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
154
148
|
</a>
|
155
|
-
<h4 align='center'><a href='https://twitter.com/
|
149
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
156
150
|
</td>
|
157
151
|
<td id='josh-holtz'>
|
158
152
|
<a href='https://github.com/joshdholtz'>
|
@@ -160,19 +154,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
160
154
|
</a>
|
161
155
|
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
162
156
|
</td>
|
157
|
+
<td id='iulian-onofrei'>
|
158
|
+
<a href='https://github.com/revolter'>
|
159
|
+
<img src='https://github.com/revolter.png?size=140'>
|
160
|
+
</a>
|
161
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
162
|
+
</td>
|
163
163
|
</tr>
|
164
164
|
<tr>
|
165
|
-
<td id='
|
166
|
-
<a href='https://github.com/
|
167
|
-
<img src='https://github.com/
|
165
|
+
<td id='daniel-jankowski'>
|
166
|
+
<a href='https://github.com/mollyIV'>
|
167
|
+
<img src='https://github.com/mollyIV.png?size=140'>
|
168
168
|
</a>
|
169
|
-
<h4 align='center'><a href='https://twitter.com/
|
169
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
170
170
|
</td>
|
171
|
-
<td id='
|
172
|
-
<a href='https://github.com/
|
173
|
-
<img src='https://github.com/
|
171
|
+
<td id='manu-wallner'>
|
172
|
+
<a href='https://github.com/milch'>
|
173
|
+
<img src='https://github.com/milch.png?size=140'>
|
174
174
|
</a>
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
175
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
176
176
|
</td>
|
177
177
|
</table>
|
178
178
|
|
data/cert/lib/cert/options.rb
CHANGED
@@ -38,7 +38,7 @@ module Cert
|
|
38
38
|
|
39
39
|
# App Store Connect API
|
40
40
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
41
|
-
|
41
|
+
env_names: ["CERT_API_KEY_PATH", "DELIVER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
42
42
|
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
43
43
|
optional: true,
|
44
44
|
conflicting_options: [:api_key],
|
@@ -46,7 +46,7 @@ module Cert
|
|
46
46
|
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
47
47
|
end),
|
48
48
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
49
|
-
|
49
|
+
env_names: ["CERT_API_KEY", "DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
50
50
|
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
|
51
51
|
type: Hash,
|
52
52
|
optional: true,
|
@@ -13,7 +13,7 @@ module Deliver
|
|
13
13
|
|
14
14
|
[
|
15
15
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
16
|
-
|
16
|
+
env_names: ["DELIVER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
17
17
|
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
18
18
|
optional: true,
|
19
19
|
conflicting_options: [:api_key],
|
@@ -21,7 +21,7 @@ module Deliver
|
|
21
21
|
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
22
22
|
end),
|
23
23
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
24
|
-
|
24
|
+
env_names: ["DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
25
25
|
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
|
26
26
|
type: Hash,
|
27
27
|
optional: true,
|
@@ -83,7 +83,7 @@ module Deliver
|
|
83
83
|
|
84
84
|
if options[:api_key] || options[:api_key_path]
|
85
85
|
if options[:precheck_include_in_app_purchases]
|
86
|
-
UI.user_error!("Precheck cannot check In-app purchases with the App Store Connect API Key (yet). Exclude In-app purchases from precheck or use Apple ID login")
|
86
|
+
UI.user_error!("Precheck cannot check In-app purchases with the App Store Connect API Key (yet). Exclude In-app purchases from precheck, disable the precheck step in your build step, or use Apple ID login")
|
87
87
|
end
|
88
88
|
|
89
89
|
precheck_options[:api_key] = options[:api_key]
|
@@ -46,7 +46,7 @@ module Deliver
|
|
46
46
|
v = app.get_latest_app_store_version(platform: platform)
|
47
47
|
|
48
48
|
metadata_path = options[:metadata_path] || File.join(deliver_path, 'metadata')
|
49
|
-
generate_metadata_files(app, v, metadata_path)
|
49
|
+
generate_metadata_files(app, v, metadata_path, options)
|
50
50
|
|
51
51
|
# Generate the final Deliverfile here
|
52
52
|
return File.read(deliverfile_path)
|
@@ -60,9 +60,14 @@ module Deliver
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
def generate_metadata_files(app, version, path)
|
63
|
+
def generate_metadata_files(app, version, path, options)
|
64
64
|
# App info localizations
|
65
|
-
|
65
|
+
if options[:use_live_version]
|
66
|
+
app_info = app.fetch_live_app_info
|
67
|
+
UI.user_error!("The option `use_live_version` was set to `true`, however no live app was found on App Store Connect.") unless app_info
|
68
|
+
else
|
69
|
+
app_info = app.fetch_edit_app_info || app.fetch_live_app_info
|
70
|
+
end
|
66
71
|
app_info_localizations = app_info.get_app_info_localizations
|
67
72
|
app_info_localizations.each do |localization|
|
68
73
|
language = localization.locale
|
@@ -231,12 +231,13 @@ module Deliver
|
|
231
231
|
end
|
232
232
|
|
233
233
|
def sort_screenshots(localizations)
|
234
|
+
require 'naturally'
|
234
235
|
iterator = AppScreenshotIterator.new(localizations)
|
235
236
|
|
236
237
|
# Re-order screenshots within app_screenshot_set
|
237
238
|
worker = QueueWorker.new do |app_screenshot_set|
|
238
239
|
original_ids = app_screenshot_set.app_screenshots.map(&:id)
|
239
|
-
sorted_ids = app_screenshot_set.app_screenshots
|
240
|
+
sorted_ids = Naturally.sort(app_screenshot_set.app_screenshots, by: :file_name).map(&:id)
|
240
241
|
if original_ids != sorted_ids
|
241
242
|
app_screenshot_set.reorder_screenshots(app_screenshot_ids: sorted_ids)
|
242
243
|
end
|
@@ -37,7 +37,7 @@ module Fastlane
|
|
37
37
|
FastlaneCore::ConfigItem.new(key: :adb_path,
|
38
38
|
env_name: "FL_ADB_PATH",
|
39
39
|
optional: true,
|
40
|
-
description: "The path to your `adb` binary (can be left blank if the ANDROID_SDK_ROOT environment variable is set)",
|
40
|
+
description: "The path to your `adb` binary (can be left blank if the ANDROID_SDK_ROOT, ANDROID_HOME or ANDROID_SDK environment variable is set)",
|
41
41
|
is_string: true,
|
42
42
|
default_value: "adb")
|
43
43
|
]
|
@@ -118,7 +118,7 @@ module Fastlane
|
|
118
118
|
user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
|
119
119
|
[
|
120
120
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
121
|
-
|
121
|
+
env_names: ["APPSTORE_BUILD_NUMBER_API_KEY_PATH", "APP_STORE_CONNECT_API_KEY_PATH"],
|
122
122
|
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
123
123
|
optional: true,
|
124
124
|
conflicting_options: [:api_key],
|
@@ -126,7 +126,7 @@ module Fastlane
|
|
126
126
|
UI.user_error!("Couldn't find API key JSON file at path '#{value}'") unless File.exist?(value)
|
127
127
|
end),
|
128
128
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
129
|
-
|
129
|
+
env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
130
130
|
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#use-return-value-and-pass-in-as-an-option)",
|
131
131
|
type: Hash,
|
132
132
|
optional: true,
|
@@ -75,6 +75,7 @@ module Fastlane
|
|
75
75
|
env_name: "APP_STORE_CONNECT_API_KEY_DURATION",
|
76
76
|
description: "The token session duration",
|
77
77
|
optional: true,
|
78
|
+
default_value: Spaceship::ConnectAPI::Token::MAX_TOKEN_DURATION,
|
78
79
|
type: Integer),
|
79
80
|
FastlaneCore::ConfigItem.new(key: :in_house,
|
80
81
|
env_name: "APP_STORE_CONNECT_API_KEY_IN_HOUSE",
|
@@ -31,6 +31,10 @@ module Fastlane
|
|
31
31
|
|
32
32
|
params[:note] = options[:note] if options[:note].to_s.length > 0
|
33
33
|
|
34
|
+
if options[:timeout]
|
35
|
+
params[:timeout] = options[:timeout]
|
36
|
+
end
|
37
|
+
|
34
38
|
uri = URI.parse(appetize_url(options))
|
35
39
|
req = create_request(uri, params)
|
36
40
|
req.basic_auth(options[:api_token], nil)
|
@@ -147,7 +151,15 @@ module Fastlane
|
|
147
151
|
env_name: "APPETIZE_NOTE",
|
148
152
|
description: "Notes you wish to add to the uploaded app",
|
149
153
|
is_string: true,
|
150
|
-
optional: true)
|
154
|
+
optional: true),
|
155
|
+
FastlaneCore::ConfigItem.new(key: :timeout,
|
156
|
+
env_name: "APPETIZE_TIMEOUT",
|
157
|
+
description: "The number of seconds to wait until automatically ending the session due to user inactivity. Must be 30, 60, 90, 120, 180, 300, 600, 1800, 3600 or 7200. Default is 120",
|
158
|
+
type: Integer,
|
159
|
+
optional: true,
|
160
|
+
verify_block: proc do |value|
|
161
|
+
UI.user_error!("The value provided doesn't match any of the supported options.") unless [30, 60, 90, 120, 180, 300, 600, 1800, 3600, 7200].include?(value)
|
162
|
+
end)
|
151
163
|
]
|
152
164
|
end
|
153
165
|
|
@@ -10,7 +10,12 @@ module Fastlane
|
|
10
10
|
Actions.verify_gem!('artifactory')
|
11
11
|
|
12
12
|
require 'artifactory'
|
13
|
+
|
14
|
+
UI.user_error!("Cannot connect to Artifactory - 'username' was provided but it's missing 'password'") if params[:username] && !params[:password]
|
15
|
+
UI.user_error!("Cannot connect to Artifactory - 'password' was provided but it's missing 'username'") if !params[:username] && params[:password]
|
16
|
+
UI.user_error!("Cannot connect to Artifactory - either 'api_key', or 'username' and 'password' must be provided") if !params[:api_key] && !params[:username]
|
13
17
|
file_path = File.absolute_path(params[:file])
|
18
|
+
|
14
19
|
if File.exist?(file_path)
|
15
20
|
client = connect_to_artifactory(params)
|
16
21
|
artifact = Artifactory::Resource::Artifact.new
|
@@ -37,7 +42,7 @@ module Fastlane
|
|
37
42
|
end
|
38
43
|
|
39
44
|
def self.connect_to_artifactory(params)
|
40
|
-
config_keys = [:endpoint, :username, :password, :ssl_pem_file, :ssl_verify, :proxy_username, :proxy_password, :proxy_address, :proxy_port, :read_timeout]
|
45
|
+
config_keys = [:endpoint, :username, :password, :api_key, :ssl_pem_file, :ssl_verify, :proxy_username, :proxy_password, :proxy_address, :proxy_port, :read_timeout]
|
41
46
|
config = params.values.select do |key|
|
42
47
|
config_keys.include?(key)
|
43
48
|
end
|
@@ -48,6 +53,10 @@ module Fastlane
|
|
48
53
|
'This action uploads an artifact to artifactory'
|
49
54
|
end
|
50
55
|
|
56
|
+
def self.details
|
57
|
+
'Connect to the artifactory server using either a username/password or an api_key'
|
58
|
+
end
|
59
|
+
|
51
60
|
def self.is_supported?(platform)
|
52
61
|
true
|
53
62
|
end
|
@@ -72,6 +81,13 @@ module Fastlane
|
|
72
81
|
file: "example.ipa", # File to upload
|
73
82
|
repo: "mobile_artifacts", # Artifactory repo
|
74
83
|
repo_path: "/ios/appname/example-major.minor.ipa" # Path to place the artifact including its filename
|
84
|
+
)',
|
85
|
+
'artifactory(
|
86
|
+
api_key: "api_key",
|
87
|
+
endpoint: "https://artifactory.example.com/artifactory/",
|
88
|
+
file: "example.ipa", # File to upload
|
89
|
+
repo: "mobile_artifacts", # Artifactory repo
|
90
|
+
repo_path: "/ios/appname/example-major.minor.ipa" # Path to place the artifact including its filename
|
75
91
|
)'
|
76
92
|
]
|
77
93
|
end
|
@@ -101,12 +117,29 @@ module Fastlane
|
|
101
117
|
FastlaneCore::ConfigItem.new(key: :username,
|
102
118
|
env_name: "FL_ARTIFACTORY_USERNAME",
|
103
119
|
description: "Artifactory username",
|
104
|
-
optional:
|
120
|
+
optional: true,
|
121
|
+
conflicting_options: [:api_key],
|
122
|
+
conflict_block: proc do |value|
|
123
|
+
UI.user_error!("You can't use option '#{value.key}' along with 'username'")
|
124
|
+
end),
|
105
125
|
FastlaneCore::ConfigItem.new(key: :password,
|
106
126
|
env_name: "FL_ARTIFACTORY_PASSWORD",
|
107
127
|
description: "Artifactory password",
|
108
128
|
sensitive: true,
|
109
|
-
optional:
|
129
|
+
optional: true,
|
130
|
+
conflicting_options: [:api_key],
|
131
|
+
conflict_block: proc do |value|
|
132
|
+
UI.user_error!("You can't use option '#{value.key}' along with 'password'")
|
133
|
+
end),
|
134
|
+
FastlaneCore::ConfigItem.new(key: :api_key,
|
135
|
+
env_name: "FL_ARTIFACTORY_API_KEY",
|
136
|
+
description: "Artifactory API key",
|
137
|
+
sensitive: true,
|
138
|
+
optional: true,
|
139
|
+
conflicting_options: [:username, :password],
|
140
|
+
conflict_block: proc do |value|
|
141
|
+
UI.user_error!("You can't use option '#{value.key}' along with 'api_key'")
|
142
|
+
end),
|
110
143
|
FastlaneCore::ConfigItem.new(key: :properties,
|
111
144
|
env_name: "FL_ARTIFACTORY_PROPERTIES",
|
112
145
|
description: "Artifact properties hash",
|