fastlane 2.134.0 → 2.135.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 +72 -72
- data/fastlane/lib/fastlane/action.rb +1 -1
- data/fastlane/lib/fastlane/actions/actions_helper.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/capture_ios_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +4 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +26 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +1 -1
- data/fastlane/lib/fastlane/actions/download_from_play_store.rb +1 -1
- data/fastlane/lib/fastlane/environment_printer.rb +2 -2
- data/fastlane/lib/fastlane/lane_manager.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +12 -2
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
- data/fastlane/lib/fastlane/runner.rb +2 -2
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +50 -20
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +2 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +3 -3
- data/fastlane_core/lib/fastlane_core/configuration/configuration.rb +1 -1
- data/fastlane_core/lib/fastlane_core/swag.rb +1 -1
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +1 -1
- data/{pilot/lib/pilot/.manager.rb.swp → gym/lib/gym/.module.rb.swp} +0 -0
- data/sigh/lib/assets/resign.sh +2 -2
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
- data/supply/lib/supply.rb +23 -0
- data/{fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp → supply/lib/supply/.client.rb.swp} +0 -0
- data/supply/lib/supply/.options.rb.swp +0 -0
- data/supply/lib/supply/.uploader.rb.swp +0 -0
- data/supply/lib/supply/client.rb +101 -55
- data/supply/lib/supply/options.rb +49 -14
- data/supply/lib/supply/release_listing.rb +18 -0
- data/supply/lib/supply/setup.rb +42 -34
- data/supply/lib/supply/uploader.rb +168 -93
- metadata +21 -24
- data/fastlane/lib/fastlane/actions/.download_dsyms.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/spaceship/lib/spaceship/connect_api/.DS_Store +0 -0
- data/spaceship/lib/spaceship/portal/.certificate.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: 11ad4a66eed7e6f49928e1fe3672f975f70f7a0a70dec8d72297bffe8072abd6
|
4
|
+
data.tar.gz: 07b35e9ee1d7051e2c60c87353e5def08c8956c5c7ca0e790dfe67493aa538e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aef0a8ad6b6504a50b04eeff619e261bccea0c1b0e80b89c385f9bc7561dc961763e1034a6c8c302eb131fee502ddcec348b42849e16daaf2266d8eca1723bfc
|
7
|
+
data.tar.gz: 1577316c847c3cf3cb7473f8b69e1cede26b1e7f847a6c6d55c31431cba4e0a400425d43da3320cd69c5a5f8a348c8174204bfaac44c454c47f725aefb33f483
|
data/README.md
CHANGED
@@ -34,17 +34,11 @@ 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/
|
40
|
-
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
42
|
-
</td>
|
43
|
-
<td id='luka-mirosevic'>
|
44
|
-
<a href='https://github.com/lmirosevic'>
|
45
|
-
<img src='https://github.com/lmirosevic.png?size=140'>
|
37
|
+
<td id='kohki-miki'>
|
38
|
+
<a href='https://github.com/giginet'>
|
39
|
+
<img src='https://github.com/giginet.png?size=140'>
|
46
40
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
48
42
|
</td>
|
49
43
|
<td id='aaron-brager'>
|
50
44
|
<a href='https://github.com/getaaron'>
|
@@ -52,25 +46,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
52
46
|
</a>
|
53
47
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
54
48
|
</td>
|
55
|
-
<td id='
|
56
|
-
<a href='https://github.com/
|
57
|
-
<img src='https://github.com/
|
58
|
-
</a>
|
59
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
60
|
-
</td>
|
61
|
-
<td id='olivier-halligon'>
|
62
|
-
<a href='https://github.com/AliSoftware'>
|
63
|
-
<img src='https://github.com/AliSoftware.png?size=140'>
|
49
|
+
<td id='jimmy-dee'>
|
50
|
+
<a href='https://github.com/jdee'>
|
51
|
+
<img src='https://github.com/jdee.png?size=140'>
|
64
52
|
</a>
|
65
|
-
<h4 align='center'
|
53
|
+
<h4 align='center'>Jimmy Dee</h4>
|
66
54
|
</td>
|
67
|
-
|
68
|
-
<
|
69
|
-
<
|
70
|
-
<a href='https://github.com/joshdholtz'>
|
71
|
-
<img src='https://github.com/joshdholtz.png?size=140'>
|
55
|
+
<td id='jérôme-lacoste'>
|
56
|
+
<a href='https://github.com/lacostej'>
|
57
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
72
58
|
</a>
|
73
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
74
60
|
</td>
|
75
61
|
<td id='manu-wallner'>
|
76
62
|
<a href='https://github.com/milch'>
|
@@ -78,49 +64,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
78
64
|
</a>
|
79
65
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
80
66
|
</td>
|
81
|
-
<td id='helmut-januschka'>
|
82
|
-
<a href='https://github.com/hjanuschka'>
|
83
|
-
<img src='https://github.com/hjanuschka.png?size=140'>
|
84
|
-
</a>
|
85
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
86
|
-
</td>
|
87
|
-
<td id='jorge-revuelta-h'>
|
88
|
-
<a href='https://github.com/minuscorp'>
|
89
|
-
<img src='https://github.com/minuscorp.png?size=140'>
|
90
|
-
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
92
|
-
</td>
|
93
|
-
<td id='jan-piotrowski'>
|
94
|
-
<a href='https://github.com/janpio'>
|
95
|
-
<img src='https://github.com/janpio.png?size=140'>
|
96
|
-
</a>
|
97
|
-
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
98
|
-
</td>
|
99
67
|
</tr>
|
100
68
|
<tr>
|
101
|
-
<td id='
|
102
|
-
<a href='https://github.com/
|
103
|
-
<img src='https://github.com/
|
69
|
+
<td id='luka-mirosevic'>
|
70
|
+
<a href='https://github.com/lmirosevic'>
|
71
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
104
72
|
</a>
|
105
|
-
<h4 align='center'><a href='https://twitter.com/
|
73
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
106
74
|
</td>
|
107
|
-
<td id='
|
108
|
-
<a href='https://github.com/
|
109
|
-
<img src='https://github.com/
|
75
|
+
<td id='felix-krause'>
|
76
|
+
<a href='https://github.com/KrauseFx'>
|
77
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
110
78
|
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/
|
79
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
112
80
|
</td>
|
113
|
-
<td id='
|
114
|
-
<a href='https://github.com/
|
115
|
-
<img src='https://github.com/
|
81
|
+
<td id='josh-holtz'>
|
82
|
+
<a href='https://github.com/joshdholtz'>
|
83
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
116
84
|
</a>
|
117
|
-
<h4 align='center'><a href='https://twitter.com/
|
85
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
118
86
|
</td>
|
119
|
-
<td id='
|
120
|
-
<a href='https://github.com/
|
121
|
-
<img src='https://github.com/
|
87
|
+
<td id='maksym-grebenets'>
|
88
|
+
<a href='https://github.com/mgrebenets'>
|
89
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
122
90
|
</a>
|
123
|
-
<h4 align='center'><a href='https://twitter.com/
|
91
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
124
92
|
</td>
|
125
93
|
<td id='matthew-ellis'>
|
126
94
|
<a href='https://github.com/matthewellis'>
|
@@ -136,29 +104,61 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
136
104
|
</a>
|
137
105
|
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
138
106
|
</td>
|
107
|
+
<td id='jan-piotrowski'>
|
108
|
+
<a href='https://github.com/janpio'>
|
109
|
+
<img src='https://github.com/janpio.png?size=140'>
|
110
|
+
</a>
|
111
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
112
|
+
</td>
|
113
|
+
<td id='iulian-onofrei'>
|
114
|
+
<a href='https://github.com/revolter'>
|
115
|
+
<img src='https://github.com/revolter.png?size=140'>
|
116
|
+
</a>
|
117
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
118
|
+
</td>
|
139
119
|
<td id='stefan-natchev'>
|
140
120
|
<a href='https://github.com/snatchev'>
|
141
121
|
<img src='https://github.com/snatchev.png?size=140'>
|
142
122
|
</a>
|
143
123
|
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
144
124
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
125
|
+
<td id='danielle-tomlinson'>
|
126
|
+
<a href='https://github.com/endocrimes'>
|
127
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
148
128
|
</a>
|
149
|
-
<h4 align='center'>
|
129
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
150
130
|
</td>
|
151
|
-
|
152
|
-
<
|
153
|
-
<
|
131
|
+
</tr>
|
132
|
+
<tr>
|
133
|
+
<td id='jorge-revuelta-h'>
|
134
|
+
<a href='https://github.com/minuscorp'>
|
135
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
154
136
|
</a>
|
155
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
156
138
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
139
|
+
<td id='fumiya-nakamura'>
|
140
|
+
<a href='https://github.com/nafu'>
|
141
|
+
<img src='https://github.com/nafu.png?size=140'>
|
160
142
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
143
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
144
|
+
</td>
|
145
|
+
<td id='joshua-liebowitz'>
|
146
|
+
<a href='https://github.com/taquitos'>
|
147
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
148
|
+
</a>
|
149
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
150
|
+
</td>
|
151
|
+
<td id='olivier-halligon'>
|
152
|
+
<a href='https://github.com/AliSoftware'>
|
153
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
154
|
+
</a>
|
155
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
156
|
+
</td>
|
157
|
+
<td id='helmut-januschka'>
|
158
|
+
<a href='https://github.com/hjanuschka'>
|
159
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
160
|
+
</a>
|
161
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
162
162
|
</td>
|
163
163
|
</tr>
|
164
164
|
</table>
|
@@ -134,7 +134,7 @@ module Fastlane
|
|
134
134
|
UI.user_error!("To call another action from an action use `other_action.#{method_sym}` instead")
|
135
135
|
end
|
136
136
|
|
137
|
-
# When shelling out from the
|
137
|
+
# When shelling out from the action, should we use `bundle exec`?
|
138
138
|
def self.shell_out_should_use_bundle_exec?
|
139
139
|
return File.exist?('Gemfile') && !Helper.contained_fastlane?
|
140
140
|
end
|
@@ -77,7 +77,7 @@ module Fastlane
|
|
77
77
|
# rubocop:enable Style/AccessorMethodName
|
78
78
|
|
79
79
|
# Returns the class ref to the action based on the action name
|
80
|
-
# Returns nil if the action is not
|
80
|
+
# Returns nil if the action is not available
|
81
81
|
def self.action_class_ref(action_name)
|
82
82
|
class_name = action_name.to_s.fastlane_class + 'Action'
|
83
83
|
class_ref = nil
|
@@ -128,7 +128,7 @@ Your screenshots will be stored in the `./screenshots/` folder by default (or `.
|
|
128
128
|
|
129
129
|
New with Xcode 9, *snapshot* can run multiple simulators concurrently. This is the default behavior in order to take your screenshots as quickly as possible. This can be disabled to run each device, one at a time, by setting the `:concurrent_simulators` option to `false`.
|
130
130
|
|
131
|
-
**Note:** While running *snapshot* with Xcode 9, the simulators will not be visibly spawned. So, while you
|
131
|
+
**Note:** While running *snapshot* with Xcode 9, the simulators will not be visibly spawned. So, while you won't see the simulators running your tests, they will, in fact, be taking your screenshots.
|
132
132
|
|
133
133
|
If any error occurs while running the snapshot script on a device, that device will not have any screenshots, and _snapshot_ will continue with the next device or language. To stop the flow after the first error, run
|
134
134
|
|
@@ -99,7 +99,7 @@ If your machine is currently using SSH to authenticate with GitHub, you'll want
|
|
99
99
|
Using parameter:
|
100
100
|
|
101
101
|
```
|
102
|
-
|
102
|
+
match(git_basic_authorization: '<YOUR KEY>')
|
103
103
|
```
|
104
104
|
|
105
105
|
Using environment variable:
|
@@ -236,9 +236,11 @@ There are two cases for reading and writing certificates stored in a Google Clou
|
|
236
236
|
When running `fastlane match init` the first time, the setup process will give you the option to create your `gc_keys.json` file. This file contains the authentication credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control. We recommend adding `gc_keys.json` to your `.gitignore`
|
237
237
|
|
238
238
|
##### Managing developer access via keys
|
239
|
+
|
239
240
|
If you want to manage developer access to your certificates via authentication keys, every developer should create their own `gc_keys.json` and add the file to all their work machines. This will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised.
|
240
241
|
|
241
|
-
##### Managing developer
|
242
|
+
##### Managing developer access via Google accounts
|
243
|
+
|
242
244
|
If your developers already have Google accounts and access to your Google Cloud project, you can also manage access to the storage bucket via [Cloud Identity and Access Management (IAM)](https://cloud.google.com/storage/docs/access-control/iam). Just [set up](https://cloud.google.com/storage/docs/access-control/lists) individual developer accounts or an entire Google Group containing your team as readers and writers on your storage bucket.
|
243
245
|
|
244
246
|
You can then specify the Google Cloud project id containing your storage bucket in your `Matchfile`:
|
@@ -75,7 +75,7 @@ This will also upload app metadata if you previously ran `fastlane supply init`.
|
|
75
75
|
To gradually roll out a new build use
|
76
76
|
|
77
77
|
```no-highlight
|
78
|
-
fastlane supply --apk path/app.apk --track
|
78
|
+
fastlane supply --apk path/app.apk --track beta --rollout 0.5
|
79
79
|
```
|
80
80
|
|
81
81
|
### Expansion files (`.obb`)
|
@@ -110,7 +110,7 @@ This will also upload app metadata if you previously ran `fastlane supply init`.
|
|
110
110
|
To gradually roll out a new build use
|
111
111
|
|
112
112
|
```no-highlight
|
113
|
-
fastlane supply --aab path/app.aab --track
|
113
|
+
fastlane supply --aab path/app.aab --track beta --rollout 0.5
|
114
114
|
```
|
115
115
|
|
116
116
|
## Images and Screenshots
|
@@ -160,3 +160,27 @@ This can be done using the `--track_promote_to` parameter. The `--track_promote_
|
|
160
160
|
## Retrieve Track Version Codes
|
161
161
|
|
162
162
|
Before performing a new APK upload you may want to check existing track version codes, or you may simply want to provide an informational lane that displays the currently promoted version codes for the production track. You can use the `google_play_track_version_codes` action to retrieve existing version codes for a package and track. For more information, see `fastlane action google_play_track_version_codes` help output.
|
163
|
+
|
164
|
+
## Migration from AndroidPublisherV2 to AndroidPublisherV3 in _fastlane_ 2.135.0
|
165
|
+
|
166
|
+
### New Options
|
167
|
+
- `:version_name`
|
168
|
+
- Used when uploading with `:apk_path`, `:apk_paths`, `:aab_path`, and `:aab_paths`
|
169
|
+
- Can be any string such (example: "October Release" or "Awesome New Feature")
|
170
|
+
- Defaults to the version name in app/build.gradle or AndroidManifest.xml
|
171
|
+
- `:release_status`
|
172
|
+
- Used when uploading with `:apk_path`, `:apk_paths`, `:aab_path`, and `:aab_paths`
|
173
|
+
- Can set as "draft" to complete the release at some other time
|
174
|
+
- Defaults to "completed"
|
175
|
+
- `:version_code`
|
176
|
+
- Used for `:update_rollout`, `:track_promote_to`, and uploading of meta data and screenshots
|
177
|
+
- `:skip_upload_changelogs`
|
178
|
+
- Changelogs were previously included with the `:skip_upload_metadata` but is now its own option
|
179
|
+
|
180
|
+
### Deprecated Options
|
181
|
+
- `:check_superseded_tracks`
|
182
|
+
- Google Play will automatically remove releases that are superseded now
|
183
|
+
- `:deactivate_on_promote`
|
184
|
+
- Google Play will automatically deactive a release from its previous track on promote
|
185
|
+
|
186
|
+
:
|
@@ -246,7 +246,7 @@ module Fastlane
|
|
246
246
|
FastlaneCore::ConfigItem.new(key: :version,
|
247
247
|
short_option: "-v",
|
248
248
|
env_name: "DOWNLOAD_DSYMS_VERSION",
|
249
|
-
description: "The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live
|
249
|
+
description: "The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs",
|
250
250
|
optional: true),
|
251
251
|
FastlaneCore::ConfigItem.new(key: :build_number,
|
252
252
|
short_option: "-b",
|
@@ -29,7 +29,7 @@ module Fastlane
|
|
29
29
|
options = Supply::Options.available_options.clone
|
30
30
|
|
31
31
|
# remove all the unnecessary (for this action) options
|
32
|
-
options_to_keep = [:package_name, :metadata_path, :json_key, :json_key_data, :root_url, :timeout, :key, :issuer]
|
32
|
+
options_to_keep = [:package_name, :version_name, :track, :metadata_path, :json_key, :json_key_data, :root_url, :timeout, :key, :issuer]
|
33
33
|
options.delete_if { |option| options_to_keep.include?(option.key) == false }
|
34
34
|
end
|
35
35
|
|
@@ -50,11 +50,11 @@ module Fastlane
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def self.print_loaded_plugins
|
53
|
-
ENV["FASTLANE_ENV_PRINTER"] = "enabled"
|
54
53
|
env_output = "### Loaded fastlane plugins:\n"
|
55
54
|
env_output << "\n"
|
56
55
|
plugin_manager = Fastlane::PluginManager.new
|
57
|
-
plugin_manager.load_plugins
|
56
|
+
plugin_manager.load_plugins(print_table: false)
|
57
|
+
|
58
58
|
if plugin_manager.available_plugins.length <= 0
|
59
59
|
env_output << "**No plugins Loaded**\n"
|
60
60
|
else
|
@@ -113,7 +113,7 @@ module Fastlane
|
|
113
113
|
rows: FastlaneCore::PrintTable.transform_output(rows)
|
114
114
|
)
|
115
115
|
|
116
|
-
UI.message("Welcome to fastlane! Here's what your app is
|
116
|
+
UI.message("Welcome to fastlane! Here's what your app is set up to do:")
|
117
117
|
|
118
118
|
puts(table)
|
119
119
|
|
@@ -278,7 +278,7 @@ module Fastlane
|
|
278
278
|
# fastlane-plugin-[plugin_name]
|
279
279
|
# This will make sure to load the action
|
280
280
|
# and all its helpers
|
281
|
-
def load_plugins
|
281
|
+
def load_plugins(print_table: true)
|
282
282
|
UI.verbose("Checking if there are any plugins that should be loaded...")
|
283
283
|
|
284
284
|
loaded_plugins = false
|
@@ -311,7 +311,7 @@ module Fastlane
|
|
311
311
|
UI.error("Please follow the troubleshooting guide: #{TROUBLESHOOTING_URL}")
|
312
312
|
end
|
313
313
|
|
314
|
-
skip_print_plugin_info = self.plugin_references.empty? || CLIToolsDistributor.running_version_command? ||
|
314
|
+
skip_print_plugin_info = self.plugin_references.empty? || CLIToolsDistributor.running_version_command? || !print_table
|
315
315
|
|
316
316
|
# We want to avoid printing output other than the version number if we are running `fastlane -v`
|
317
317
|
print_plugin_information(self.plugin_references) unless skip_print_plugin_info
|
@@ -319,9 +319,12 @@ module Fastlane
|
|
319
319
|
|
320
320
|
# Prints a table all the plugins that were loaded
|
321
321
|
def print_plugin_information(references)
|
322
|
+
no_action_found = false
|
323
|
+
|
322
324
|
rows = references.collect do |current|
|
323
325
|
if current[1][:actions].empty?
|
324
326
|
# Something is wrong with this plugin, no available actions
|
327
|
+
no_action_found = true
|
325
328
|
[current[0].red, current[1][:version_number], "No actions found".red]
|
326
329
|
else
|
327
330
|
[current[0], current[1][:version_number], current[1][:actions].join("\n")]
|
@@ -335,6 +338,13 @@ module Fastlane
|
|
335
338
|
headings: ["Plugin", "Version", "Action"]
|
336
339
|
}))
|
337
340
|
puts("")
|
341
|
+
|
342
|
+
if no_action_found
|
343
|
+
puts("[!] No actions were found while loading one or more plugins".red)
|
344
|
+
puts(" Please use `bundle exec fastlane` with plugins".red)
|
345
|
+
puts(" More info - https://docs.fastlane.tools/plugins/using-plugins/#run-with-plugins".red)
|
346
|
+
puts("")
|
347
|
+
end
|
338
348
|
end
|
339
349
|
|
340
350
|
#####################################################
|
@@ -252,13 +252,13 @@ module Fastlane
|
|
252
252
|
puts(class_ref.deprecated_notes.to_s.remove_markdown.deprecated) if class_ref.deprecated_notes
|
253
253
|
puts("==========================================\n".deprecated)
|
254
254
|
end
|
255
|
-
class_ref.runner = self # needed to call another action
|
255
|
+
class_ref.runner = self # needed to call another action from an action
|
256
256
|
return class_ref.run(arguments)
|
257
257
|
end
|
258
258
|
end
|
259
259
|
rescue Interrupt => e
|
260
260
|
raise e # reraise the interruption to avoid logging this as a crash
|
261
|
-
rescue FastlaneCore::Interface::FastlaneCommonException => e # these are exceptions that we
|
261
|
+
rescue FastlaneCore::Interface::FastlaneCommonException => e # these are exceptions that we don't count as crashes
|
262
262
|
raise e
|
263
263
|
rescue FastlaneCore::Interface::FastlaneError => e # user_error!
|
264
264
|
action_completed(method_sym.to_s, status: FastlaneCore::ActionCompletionStatus::USER_ERROR, exception: e)
|
@@ -1567,7 +1567,7 @@ func carthage(command: String = "bootstrap",
|
|
1567
1567
|
*/
|
1568
1568
|
func cert(development: Bool = false,
|
1569
1569
|
force: Bool = false,
|
1570
|
-
generateAppleCerts: Bool =
|
1570
|
+
generateAppleCerts: Bool = false,
|
1571
1571
|
username: String,
|
1572
1572
|
teamId: String? = nil,
|
1573
1573
|
teamName: String? = nil,
|
@@ -2505,7 +2505,7 @@ func download(url: String) {
|
|
2505
2505
|
- teamId: The ID of your App Store Connect team if you're in multiple teams
|
2506
2506
|
- teamName: The name of your App Store Connect team if you're in multiple teams
|
2507
2507
|
- platform: The app platform for dSYMs you wish to download (ios, appletvos)
|
2508
|
-
- version: The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live
|
2508
|
+
- version: The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs or 'live' to download only the live version dSYMs
|
2509
2509
|
- buildNumber: The app build_number for dSYMs you wish to download
|
2510
2510
|
- minVersion: The minimum app version for dSYMs you wish to download
|
2511
2511
|
- outputDirectory: Where to save the download dSYMs, defaults to the current path
|
@@ -2553,6 +2553,8 @@ func downloadDsyms(username: String,
|
|
2553
2553
|
|
2554
2554
|
- parameters:
|
2555
2555
|
- packageName: The package name of the application to use
|
2556
|
+
- versionName: Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml
|
2557
|
+
- track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
|
2556
2558
|
- metadataPath: Path to the directory containing the metadata files
|
2557
2559
|
- key: **DEPRECATED!** Use `--json_key` instead - The p12 File used to authenticate with Google
|
2558
2560
|
- issuer: **DEPRECATED!** Use `--json_key` instead - The issuer of the p12 file (email address of the service account)
|
@@ -2564,7 +2566,9 @@ func downloadDsyms(username: String,
|
|
2564
2566
|
More information: https://docs.fastlane.tools/actions/download_from_play_store/
|
2565
2567
|
*/
|
2566
2568
|
func downloadFromPlayStore(packageName: String,
|
2567
|
-
|
2569
|
+
versionName: String? = nil,
|
2570
|
+
track: String = "production",
|
2571
|
+
metadataPath: String? = nil,
|
2568
2572
|
key: String? = nil,
|
2569
2573
|
issuer: String? = nil,
|
2570
2574
|
jsonKey: String? = nil,
|
@@ -2572,6 +2576,8 @@ func downloadFromPlayStore(packageName: String,
|
|
2572
2576
|
rootUrl: String? = nil,
|
2573
2577
|
timeout: Int = 300) {
|
2574
2578
|
let command = RubyCommand(commandID: "", methodName: "download_from_play_store", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
|
2579
|
+
RubyCommand.Argument(name: "version_name", value: versionName),
|
2580
|
+
RubyCommand.Argument(name: "track", value: track),
|
2575
2581
|
RubyCommand.Argument(name: "metadata_path", value: metadataPath),
|
2576
2582
|
RubyCommand.Argument(name: "key", value: key),
|
2577
2583
|
RubyCommand.Argument(name: "issuer", value: issuer),
|
@@ -2933,7 +2939,7 @@ func getBuildNumberRepository(useHgRevisionNumber: Bool = false) {
|
|
2933
2939
|
*/
|
2934
2940
|
func getCertificates(development: Bool = false,
|
2935
2941
|
force: Bool = false,
|
2936
|
-
generateAppleCerts: Bool =
|
2942
|
+
generateAppleCerts: Bool = false,
|
2937
2943
|
username: String,
|
2938
2944
|
teamId: String? = nil,
|
2939
2945
|
teamName: String? = nil,
|
@@ -3366,7 +3372,7 @@ func githubApi(serverUrl: String = "https://api.github.com",
|
|
3366
3372
|
|
3367
3373
|
- parameters:
|
3368
3374
|
- packageName: The package name of the application to use
|
3369
|
-
- track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
|
3375
|
+
- track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
|
3370
3376
|
- key: **DEPRECATED!** Use `--json_key` instead - The p12 File used to authenticate with Google
|
3371
3377
|
- issuer: **DEPRECATED!** Use `--json_key` instead - The issuer of the p12 file (email address of the service account)
|
3372
3378
|
- jsonKey: The path to a file containing service account JSON, used to authenticate with Google
|
@@ -6654,7 +6660,10 @@ func ssh(username: String,
|
|
6654
6660
|
|
6655
6661
|
- parameters:
|
6656
6662
|
- packageName: The package name of the application to use
|
6657
|
-
-
|
6663
|
+
- versionName: Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml
|
6664
|
+
- versionCode: Version code (used when updating rollout or promoting specific versions)
|
6665
|
+
- releaseStatus: Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress
|
6666
|
+
- track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
|
6658
6667
|
- rollout: The percentage of the user fraction when uploading to the rollout track
|
6659
6668
|
- metadataPath: Path to the directory containing the metadata files
|
6660
6669
|
- key: **DEPRECATED!** Use `--json_key` instead - The p12 File used to authenticate with Google
|
@@ -6667,17 +6676,18 @@ func ssh(username: String,
|
|
6667
6676
|
- aabPaths: An array of paths to AAB files to upload
|
6668
6677
|
- skipUploadApk: Whether to skip uploading APK
|
6669
6678
|
- skipUploadAab: Whether to skip uploading AAB
|
6670
|
-
- skipUploadMetadata: Whether to skip uploading metadata
|
6679
|
+
- skipUploadMetadata: Whether to skip uploading metadata, changelogs not included
|
6680
|
+
- skipUploadChangelogs: Whether to skip uploading changelogs
|
6671
6681
|
- skipUploadImages: Whether to skip uploading images, screenshots not included
|
6672
6682
|
- skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
|
6673
|
-
- trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
|
6683
|
+
- trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
|
6674
6684
|
- validateOnly: Only validate changes with Google Play rather than actually publish
|
6675
6685
|
- mapping: Path to the mapping file to upload
|
6676
6686
|
- mappingPaths: An array of paths to mapping files to upload
|
6677
6687
|
- rootUrl: Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/
|
6678
|
-
- checkSupersededTracks: Check the other tracks for superseded versions and disable them
|
6688
|
+
- checkSupersededTracks: **DEPRECATED!** Google Play does this automatically now - Check the other tracks for superseded versions and disable them
|
6679
6689
|
- timeout: Timeout for read, open, and send (in seconds)
|
6680
|
-
- deactivateOnPromote: When promoting to a new track, deactivate the binary in the origin track
|
6690
|
+
- deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
|
6681
6691
|
- versionCodesToRetain: An array of version codes to retain when publishing a new APK
|
6682
6692
|
- obbMainReferencesVersion: References version of 'main' expansion file
|
6683
6693
|
- obbMainFileSize: Size of 'main' expansion file in bytes
|
@@ -6687,9 +6697,12 @@ func ssh(username: String,
|
|
6687
6697
|
More information: https://docs.fastlane.tools/actions/supply/
|
6688
6698
|
*/
|
6689
6699
|
func supply(packageName: String,
|
6700
|
+
versionName: String? = nil,
|
6701
|
+
versionCode: String? = nil,
|
6702
|
+
releaseStatus: String = "completed",
|
6690
6703
|
track: String = "production",
|
6691
6704
|
rollout: String? = nil,
|
6692
|
-
metadataPath: String =
|
6705
|
+
metadataPath: String? = nil,
|
6693
6706
|
key: String? = nil,
|
6694
6707
|
issuer: String? = nil,
|
6695
6708
|
jsonKey: String? = nil,
|
@@ -6701,6 +6714,7 @@ func supply(packageName: String,
|
|
6701
6714
|
skipUploadApk: Bool = false,
|
6702
6715
|
skipUploadAab: Bool = false,
|
6703
6716
|
skipUploadMetadata: Bool = false,
|
6717
|
+
skipUploadChangelogs: Bool = false,
|
6704
6718
|
skipUploadImages: Bool = false,
|
6705
6719
|
skipUploadScreenshots: Bool = false,
|
6706
6720
|
trackPromoteTo: String? = nil,
|
@@ -6717,6 +6731,9 @@ func supply(packageName: String,
|
|
6717
6731
|
obbPatchReferencesVersion: String? = nil,
|
6718
6732
|
obbPatchFileSize: String? = nil) {
|
6719
6733
|
let command = RubyCommand(commandID: "", methodName: "supply", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
|
6734
|
+
RubyCommand.Argument(name: "version_name", value: versionName),
|
6735
|
+
RubyCommand.Argument(name: "version_code", value: versionCode),
|
6736
|
+
RubyCommand.Argument(name: "release_status", value: releaseStatus),
|
6720
6737
|
RubyCommand.Argument(name: "track", value: track),
|
6721
6738
|
RubyCommand.Argument(name: "rollout", value: rollout),
|
6722
6739
|
RubyCommand.Argument(name: "metadata_path", value: metadataPath),
|
@@ -6731,6 +6748,7 @@ func supply(packageName: String,
|
|
6731
6748
|
RubyCommand.Argument(name: "skip_upload_apk", value: skipUploadApk),
|
6732
6749
|
RubyCommand.Argument(name: "skip_upload_aab", value: skipUploadAab),
|
6733
6750
|
RubyCommand.Argument(name: "skip_upload_metadata", value: skipUploadMetadata),
|
6751
|
+
RubyCommand.Argument(name: "skip_upload_changelogs", value: skipUploadChangelogs),
|
6734
6752
|
RubyCommand.Argument(name: "skip_upload_images", value: skipUploadImages),
|
6735
6753
|
RubyCommand.Argument(name: "skip_upload_screenshots", value: skipUploadScreenshots),
|
6736
6754
|
RubyCommand.Argument(name: "track_promote_to", value: trackPromoteTo),
|
@@ -6831,7 +6849,7 @@ func swiftlint(mode: Any = "lint",
|
|
6831
6849
|
*/
|
6832
6850
|
func syncCodeSigning(type: String = "development",
|
6833
6851
|
readonly: Bool = false,
|
6834
|
-
generateAppleCerts: Bool =
|
6852
|
+
generateAppleCerts: Bool = false,
|
6835
6853
|
skipProvisioningProfiles: Bool = false,
|
6836
6854
|
appIdentifier: [String],
|
6837
6855
|
username: String,
|
@@ -7664,7 +7682,10 @@ func uploadToAppStore(username: String,
|
|
7664
7682
|
|
7665
7683
|
- parameters:
|
7666
7684
|
- packageName: The package name of the application to use
|
7667
|
-
-
|
7685
|
+
- versionName: Version name (used when uploading new apks/aabs) - defaults to 'versionName' in build.gradle or AndroidManifest.xml
|
7686
|
+
- versionCode: Version code (used when updating rollout or promoting specific versions)
|
7687
|
+
- releaseStatus: Release status (used when uploading new apks/aabs) - valid values are completed, draft, halted, inProgress
|
7688
|
+
- track: The track of the application to use. The default available tracks are: production, beta, alpha, internal
|
7668
7689
|
- rollout: The percentage of the user fraction when uploading to the rollout track
|
7669
7690
|
- metadataPath: Path to the directory containing the metadata files
|
7670
7691
|
- key: **DEPRECATED!** Use `--json_key` instead - The p12 File used to authenticate with Google
|
@@ -7677,17 +7698,18 @@ func uploadToAppStore(username: String,
|
|
7677
7698
|
- aabPaths: An array of paths to AAB files to upload
|
7678
7699
|
- skipUploadApk: Whether to skip uploading APK
|
7679
7700
|
- skipUploadAab: Whether to skip uploading AAB
|
7680
|
-
- skipUploadMetadata: Whether to skip uploading metadata
|
7701
|
+
- skipUploadMetadata: Whether to skip uploading metadata, changelogs not included
|
7702
|
+
- skipUploadChangelogs: Whether to skip uploading changelogs
|
7681
7703
|
- skipUploadImages: Whether to skip uploading images, screenshots not included
|
7682
7704
|
- skipUploadScreenshots: Whether to skip uploading SCREENSHOTS
|
7683
|
-
- trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
|
7705
|
+
- trackPromoteTo: The track to promote to. The default available tracks are: production, beta, alpha, internal
|
7684
7706
|
- validateOnly: Only validate changes with Google Play rather than actually publish
|
7685
7707
|
- mapping: Path to the mapping file to upload
|
7686
7708
|
- mappingPaths: An array of paths to mapping files to upload
|
7687
7709
|
- rootUrl: Root URL for the Google Play API. The provided URL will be used for API calls in place of https://www.googleapis.com/
|
7688
|
-
- checkSupersededTracks: Check the other tracks for superseded versions and disable them
|
7710
|
+
- checkSupersededTracks: **DEPRECATED!** Google Play does this automatically now - Check the other tracks for superseded versions and disable them
|
7689
7711
|
- timeout: Timeout for read, open, and send (in seconds)
|
7690
|
-
- deactivateOnPromote: When promoting to a new track, deactivate the binary in the origin track
|
7712
|
+
- deactivateOnPromote: **DEPRECATED!** Google Play does this automatically now - When promoting to a new track, deactivate the binary in the origin track
|
7691
7713
|
- versionCodesToRetain: An array of version codes to retain when publishing a new APK
|
7692
7714
|
- obbMainReferencesVersion: References version of 'main' expansion file
|
7693
7715
|
- obbMainFileSize: Size of 'main' expansion file in bytes
|
@@ -7697,9 +7719,12 @@ func uploadToAppStore(username: String,
|
|
7697
7719
|
More information: https://docs.fastlane.tools/actions/supply/
|
7698
7720
|
*/
|
7699
7721
|
func uploadToPlayStore(packageName: String,
|
7722
|
+
versionName: String? = nil,
|
7723
|
+
versionCode: String? = nil,
|
7724
|
+
releaseStatus: String = "completed",
|
7700
7725
|
track: String = "production",
|
7701
7726
|
rollout: String? = nil,
|
7702
|
-
metadataPath: String =
|
7727
|
+
metadataPath: String? = nil,
|
7703
7728
|
key: String? = nil,
|
7704
7729
|
issuer: String? = nil,
|
7705
7730
|
jsonKey: String? = nil,
|
@@ -7711,6 +7736,7 @@ func uploadToPlayStore(packageName: String,
|
|
7711
7736
|
skipUploadApk: Bool = false,
|
7712
7737
|
skipUploadAab: Bool = false,
|
7713
7738
|
skipUploadMetadata: Bool = false,
|
7739
|
+
skipUploadChangelogs: Bool = false,
|
7714
7740
|
skipUploadImages: Bool = false,
|
7715
7741
|
skipUploadScreenshots: Bool = false,
|
7716
7742
|
trackPromoteTo: String? = nil,
|
@@ -7727,6 +7753,9 @@ func uploadToPlayStore(packageName: String,
|
|
7727
7753
|
obbPatchReferencesVersion: String? = nil,
|
7728
7754
|
obbPatchFileSize: String? = nil) {
|
7729
7755
|
let command = RubyCommand(commandID: "", methodName: "upload_to_play_store", className: nil, args: [RubyCommand.Argument(name: "package_name", value: packageName),
|
7756
|
+
RubyCommand.Argument(name: "version_name", value: versionName),
|
7757
|
+
RubyCommand.Argument(name: "version_code", value: versionCode),
|
7758
|
+
RubyCommand.Argument(name: "release_status", value: releaseStatus),
|
7730
7759
|
RubyCommand.Argument(name: "track", value: track),
|
7731
7760
|
RubyCommand.Argument(name: "rollout", value: rollout),
|
7732
7761
|
RubyCommand.Argument(name: "metadata_path", value: metadataPath),
|
@@ -7741,6 +7770,7 @@ func uploadToPlayStore(packageName: String,
|
|
7741
7770
|
RubyCommand.Argument(name: "skip_upload_apk", value: skipUploadApk),
|
7742
7771
|
RubyCommand.Argument(name: "skip_upload_aab", value: skipUploadAab),
|
7743
7772
|
RubyCommand.Argument(name: "skip_upload_metadata", value: skipUploadMetadata),
|
7773
|
+
RubyCommand.Argument(name: "skip_upload_changelogs", value: skipUploadChangelogs),
|
7744
7774
|
RubyCommand.Argument(name: "skip_upload_images", value: skipUploadImages),
|
7745
7775
|
RubyCommand.Argument(name: "skip_upload_screenshots", value: skipUploadScreenshots),
|
7746
7776
|
RubyCommand.Argument(name: "track_promote_to", value: trackPromoteTo),
|
@@ -8151,7 +8181,7 @@ func xcov(workspace: String? = nil,
|
|
8151
8181
|
coverallsServiceJobId: String? = nil,
|
8152
8182
|
coverallsRepoToken: String? = nil,
|
8153
8183
|
xcconfig: String? = nil,
|
8154
|
-
ideFoundationPath: String = "/Applications/Xcode-
|
8184
|
+
ideFoundationPath: String = "/Applications/Xcode-10.3.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
8155
8185
|
legacySupport: Bool = false) {
|
8156
8186
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
8157
8187
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -8296,4 +8326,4 @@ let snapshotfile: Snapshotfile = Snapshotfile()
|
|
8296
8326
|
|
8297
8327
|
// Please don't remove the lines below
|
8298
8328
|
// They are used to detect outdated files
|
8299
|
-
// FastlaneRunnerAPIVersion [0.9.
|
8329
|
+
// FastlaneRunnerAPIVersion [0.9.62]
|