fastlane 2.132.0 → 2.135.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +74 -74
- data/fastlane/lib/fastlane/action.rb +1 -1
- data/fastlane/lib/fastlane/actions/actions_helper.rb +1 -1
- data/fastlane/lib/fastlane/actions/carthage.rb +7 -0
- data/fastlane/lib/fastlane/actions/cocoapods.rb +24 -2
- data/fastlane/lib/fastlane/actions/deploygate.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 +26 -3
- data/fastlane/lib/fastlane/actions/download_from_play_store.rb +1 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +10 -4
- data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +5 -1
- data/fastlane/lib/fastlane/actions/sonar.rb +16 -0
- data/fastlane/lib/fastlane/actions/testfairy.rb +1 -1
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +9 -49
- data/fastlane/lib/fastlane/actions/update_keychain_access_groups.rb +94 -0
- data/fastlane/lib/fastlane/environment_printer.rb +9 -3
- data/fastlane/lib/fastlane/fast_file.rb +3 -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/swift_fastlane_api_generator.rb +10 -2
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +72 -3
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +121 -1
- data/fastlane/swift/Fastlane.swift +3900 -16
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +81 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +60 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +15 -2
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +109 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +39 -2
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +69 -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/device_manager.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/match/lib/match/importer.rb +1 -1
- data/match/lib/match/storage/google_cloud_storage.rb +3 -0
- data/scan/lib/scan/error_handler.rb +9 -4
- data/scan/lib/scan/runner.rb +1 -1
- data/sigh/lib/assets/resign.sh +2 -2
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher.rb +1 -1
- data/spaceship/lib/spaceship/client.rb +2 -2
- data/supply/lib/supply.rb +23 -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 +50 -14
- data/supply/lib/supply/release_listing.rb +18 -0
- data/supply/lib/supply/setup.rb +42 -34
- data/supply/lib/supply/uploader.rb +171 -93
- metadata +36 -41
- data/fastlane/lib/fastlane/actions/.hockey.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.slack.rb.swp +0 -0
- data/fastlane/lib/fastlane/actions/.update_project_provisioning.rb.swp +0 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/gym/lib/gym/.runner.rb.swp +0 -0
- data/pilot/lib/pilot/.manager.rb.swp +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
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: bc8a348892470f7c95c046a30e878eeb46a3364e29266d6e2eede8820cda60c9
|
4
|
+
data.tar.gz: a33412ac7217f0dfe530dcbee955c80c3290cdacabaef708ae9a755008470863
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1eb4a8112757f60290d56eb206f26039b5c47abf1999cd09fcfe29eb308596aa8e117057c4ea09e651c2d63526effae43ff9e0b8d577ce155fe9ff36a110e83
|
7
|
+
data.tar.gz: f071dcaa3f3a11baa944d5c6408a544a3f7f42d76ec9bdfa32d2a962717242587583e958d8bbd4c2dade656d0b95779c971ddaaabdb0f49da42a3ebcd4171b0b
|
data/README.md
CHANGED
@@ -34,29 +34,43 @@ 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='iulian-onofrei'>
|
38
|
+
<a href='https://github.com/revolter'>
|
39
|
+
<img src='https://github.com/revolter.png?size=140'>
|
40
40
|
</a>
|
41
|
-
<h4 align='center'><a href='https://twitter.com/
|
41
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
42
42
|
</td>
|
43
|
-
<td id='
|
44
|
-
<a href='https://github.com/
|
45
|
-
<img src='https://github.com/
|
43
|
+
<td id='stefan-natchev'>
|
44
|
+
<a href='https://github.com/snatchev'>
|
45
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
46
46
|
</a>
|
47
|
-
<h4 align='center'><a href='https://twitter.com/
|
47
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
48
48
|
</td>
|
49
|
-
<td id='
|
50
|
-
<a href='https://github.com/
|
51
|
-
<img src='https://github.com/
|
49
|
+
<td id='jorge-revuelta-h'>
|
50
|
+
<a href='https://github.com/minuscorp'>
|
51
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
52
52
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
53
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
54
54
|
</td>
|
55
|
-
<td id='
|
56
|
-
<a href='https://github.com/
|
57
|
-
<img src='https://github.com/
|
55
|
+
<td id='josh-holtz'>
|
56
|
+
<a href='https://github.com/joshdholtz'>
|
57
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
58
58
|
</a>
|
59
|
-
<h4 align='center'><a href='https://twitter.com/
|
59
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
60
|
+
</td>
|
61
|
+
<td id='danielle-tomlinson'>
|
62
|
+
<a href='https://github.com/endocrimes'>
|
63
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
64
|
+
</a>
|
65
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
66
|
+
</td>
|
67
|
+
</tr>
|
68
|
+
<tr>
|
69
|
+
<td id='joshua-liebowitz'>
|
70
|
+
<a href='https://github.com/taquitos'>
|
71
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
72
|
+
</a>
|
73
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
60
74
|
</td>
|
61
75
|
<td id='olivier-halligon'>
|
62
76
|
<a href='https://github.com/AliSoftware'>
|
@@ -64,101 +78,87 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
64
78
|
</a>
|
65
79
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
66
80
|
</td>
|
67
|
-
|
68
|
-
<
|
81
|
+
<td id='maksym-grebenets'>
|
82
|
+
<a href='https://github.com/mgrebenets'>
|
83
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
84
|
+
</a>
|
85
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
86
|
+
</td>
|
87
|
+
<td id='jérôme-lacoste'>
|
88
|
+
<a href='https://github.com/lacostej'>
|
89
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
90
|
+
</a>
|
91
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
92
|
+
</td>
|
69
93
|
<td id='kohki-miki'>
|
70
94
|
<a href='https://github.com/giginet'>
|
71
95
|
<img src='https://github.com/giginet.png?size=140'>
|
72
96
|
</a>
|
73
97
|
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
74
98
|
</td>
|
99
|
+
</tr>
|
100
|
+
<tr>
|
101
|
+
<td id='andrew-mcburney'>
|
102
|
+
<a href='https://github.com/armcburney'>
|
103
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
104
|
+
</a>
|
105
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
106
|
+
</td>
|
75
107
|
<td id='luka-mirosevic'>
|
76
108
|
<a href='https://github.com/lmirosevic'>
|
77
109
|
<img src='https://github.com/lmirosevic.png?size=140'>
|
78
110
|
</a>
|
79
111
|
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
80
112
|
</td>
|
81
|
-
<td id='josh-holtz'>
|
82
|
-
<a href='https://github.com/joshdholtz'>
|
83
|
-
<img src='https://github.com/joshdholtz.png?size=140'>
|
84
|
-
</a>
|
85
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
86
|
-
</td>
|
87
|
-
<td id='joshua-liebowitz'>
|
88
|
-
<a href='https://github.com/taquitos'>
|
89
|
-
<img src='https://github.com/taquitos.png?size=140'>
|
90
|
-
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
92
|
-
</td>
|
93
113
|
<td id='jan-piotrowski'>
|
94
114
|
<a href='https://github.com/janpio'>
|
95
115
|
<img src='https://github.com/janpio.png?size=140'>
|
96
116
|
</a>
|
97
117
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
98
118
|
</td>
|
99
|
-
</tr>
|
100
|
-
<tr>
|
101
119
|
<td id='fumiya-nakamura'>
|
102
120
|
<a href='https://github.com/nafu'>
|
103
121
|
<img src='https://github.com/nafu.png?size=140'>
|
104
122
|
</a>
|
105
123
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
106
124
|
</td>
|
107
|
-
<td id='jorge-revuelta-h'>
|
108
|
-
<a href='https://github.com/minuscorp'>
|
109
|
-
<img src='https://github.com/minuscorp.png?size=140'>
|
110
|
-
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
112
|
-
</td>
|
113
|
-
<td id='jimmy-dee'>
|
114
|
-
<a href='https://github.com/jdee'>
|
115
|
-
<img src='https://github.com/jdee.png?size=140'>
|
116
|
-
</a>
|
117
|
-
<h4 align='center'>Jimmy Dee</h4>
|
118
|
-
</td>
|
119
|
-
<td id='stefan-natchev'>
|
120
|
-
<a href='https://github.com/snatchev'>
|
121
|
-
<img src='https://github.com/snatchev.png?size=140'>
|
122
|
-
</a>
|
123
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
124
|
-
</td>
|
125
|
-
<td id='danielle-tomlinson'>
|
126
|
-
<a href='https://github.com/endocrimes'>
|
127
|
-
<img src='https://github.com/endocrimes.png?size=140'>
|
128
|
-
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
130
|
-
</td>
|
131
|
-
</tr>
|
132
|
-
<tr>
|
133
125
|
<td id='felix-krause'>
|
134
126
|
<a href='https://github.com/KrauseFx'>
|
135
127
|
<img src='https://github.com/KrauseFx.png?size=140'>
|
136
128
|
</a>
|
137
129
|
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
138
130
|
</td>
|
139
|
-
|
140
|
-
<
|
141
|
-
<
|
131
|
+
</tr>
|
132
|
+
<tr>
|
133
|
+
<td id='manu-wallner'>
|
134
|
+
<a href='https://github.com/milch'>
|
135
|
+
<img src='https://github.com/milch.png?size=140'>
|
142
136
|
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</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='jimmy-dee'>
|
146
|
+
<a href='https://github.com/jdee'>
|
147
|
+
<img src='https://github.com/jdee.png?size=140'>
|
154
148
|
</a>
|
155
|
-
<h4 align='center'
|
149
|
+
<h4 align='center'>Jimmy Dee</h4>
|
156
150
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
151
|
+
<td id='aaron-brager'>
|
152
|
+
<a href='https://github.com/getaaron'>
|
153
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
160
154
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
155
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
156
|
+
</td>
|
157
|
+
<td id='matthew-ellis'>
|
158
|
+
<a href='https://github.com/matthewellis'>
|
159
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
160
|
+
</a>
|
161
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</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
|
@@ -21,6 +21,7 @@ module Fastlane
|
|
21
21
|
cmd << "--use-ssh" if params[:use_ssh]
|
22
22
|
cmd << "--use-submodules" if params[:use_submodules]
|
23
23
|
cmd << "--no-use-binaries" if params[:use_binaries] == false
|
24
|
+
cmd << "--no-checkout" if params[:no_checkout] == true
|
24
25
|
cmd << "--no-build" if params[:no_build] == true
|
25
26
|
cmd << "--no-skip-current" if params[:no_skip_current] == true
|
26
27
|
cmd << "--verbose" if params[:verbose] == true
|
@@ -94,6 +95,12 @@ module Fastlane
|
|
94
95
|
is_string: false,
|
95
96
|
type: Boolean,
|
96
97
|
optional: true),
|
98
|
+
FastlaneCore::ConfigItem.new(key: :no_checkout,
|
99
|
+
env_name: "FL_CARTHAGE_NO_CHECKOUT",
|
100
|
+
description: "When bootstrapping Carthage do not checkout",
|
101
|
+
is_string: false,
|
102
|
+
type: Boolean,
|
103
|
+
optional: true),
|
97
104
|
FastlaneCore::ConfigItem.new(key: :no_build,
|
98
105
|
env_name: "FL_CARTHAGE_NO_BUILD",
|
99
106
|
description: "When bootstrapping Carthage do not build",
|
@@ -14,15 +14,17 @@ module Fastlane
|
|
14
14
|
cmd << ["cd '#{podfile_folder}' &&"]
|
15
15
|
end
|
16
16
|
|
17
|
-
cmd << ['bundle exec'] if
|
17
|
+
cmd << ['bundle exec'] if use_bundle_exec?(params)
|
18
18
|
cmd << ['pod install']
|
19
19
|
|
20
20
|
cmd << '--no-clean' unless params[:clean]
|
21
21
|
cmd << '--no-integrate' unless params[:integrate]
|
22
|
+
cmd << '--clean-install' if params[:clean_install] && pod_version.to_f >= 1.7
|
22
23
|
cmd << '--repo-update' if params[:repo_update]
|
23
24
|
cmd << '--silent' if params[:silent]
|
24
25
|
cmd << '--verbose' if params[:verbose]
|
25
26
|
cmd << '--no-ansi' unless params[:ansi]
|
27
|
+
cmd << '--deployment' if params[:deployment]
|
26
28
|
|
27
29
|
Actions.sh(cmd.join(' '), error_callback: lambda { |result|
|
28
30
|
if !params[:repo_update] && params[:try_repo_update_on_error]
|
@@ -36,6 +38,14 @@ module Fastlane
|
|
36
38
|
})
|
37
39
|
end
|
38
40
|
|
41
|
+
def self.use_bundle_exec?(params)
|
42
|
+
params[:use_bundle_exec] && shell_out_should_use_bundle_exec?
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.pod_version
|
46
|
+
use_bundle_exec?(params) ? `bundle exec pod --version` : `pod --version`
|
47
|
+
end
|
48
|
+
|
39
49
|
def self.call_error_callback(params, result)
|
40
50
|
if params[:error_callback]
|
41
51
|
Dir.chdir(FastlaneCore::FastlaneFolder.path) do
|
@@ -57,6 +67,11 @@ module Fastlane
|
|
57
67
|
description: "Add `--repo-update` flag to `pod install` command",
|
58
68
|
is_string: false,
|
59
69
|
default_value: false),
|
70
|
+
FastlaneCore::ConfigItem.new(key: :clean_install,
|
71
|
+
env_name: "FL_COCOAPODS_CLEAN_INSTALL",
|
72
|
+
description: "Execute a full pod installation ignoring the content of the project cache",
|
73
|
+
is_string: false,
|
74
|
+
default_value: false),
|
60
75
|
FastlaneCore::ConfigItem.new(key: :silent,
|
61
76
|
env_name: "FL_COCOAPODS_SILENT",
|
62
77
|
description: "Execute command without logging output",
|
@@ -98,11 +113,18 @@ module Fastlane
|
|
98
113
|
is_string: false,
|
99
114
|
default_value: false,
|
100
115
|
type: Boolean),
|
116
|
+
FastlaneCore::ConfigItem.new(key: :deployment,
|
117
|
+
env_name: "FL_COCOAPODS_DEPLOYMENT",
|
118
|
+
description: 'Disallow any changes to the Podfile or the Podfile.lock during installation',
|
119
|
+
optional: true,
|
120
|
+
is_string: false,
|
121
|
+
default_value: false,
|
122
|
+
type: Boolean),
|
101
123
|
|
102
124
|
# Deprecated
|
103
125
|
FastlaneCore::ConfigItem.new(key: :clean,
|
104
126
|
env_name: "FL_COCOAPODS_CLEAN",
|
105
|
-
description: "(Option
|
127
|
+
description: "(Option renamed as clean_install) Remove SCM directories",
|
106
128
|
deprecated: true,
|
107
129
|
is_string: false,
|
108
130
|
default_value: true),
|
@@ -33,7 +33,7 @@ module Fastlane
|
|
33
33
|
options[:disable_notify] = 'yes' if options[:disable_notify]
|
34
34
|
|
35
35
|
connection.post("/api/users/#{user_name}/apps", options)
|
36
|
-
rescue Faraday::
|
36
|
+
rescue Faraday::TimeoutError
|
37
37
|
UI.crash!("Timed out while uploading build. Check https://deploygate.com/ to see if the upload was completed.")
|
38
38
|
end
|
39
39
|
|
@@ -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
|
+
:
|
@@ -26,6 +26,7 @@ module Fastlane
|
|
26
26
|
platform = params[:platform]
|
27
27
|
output_directory = params[:output_directory]
|
28
28
|
wait_for_dsym_processing = params[:wait_for_dsym_processing]
|
29
|
+
wait_timeout = params[:wait_timeout]
|
29
30
|
min_version = Gem::Version.new(params[:min_version]) if params[:min_version]
|
30
31
|
|
31
32
|
# Set version if it is latest
|
@@ -45,6 +46,20 @@ module Fastlane
|
|
45
46
|
version = latest_candidate_build.train_version
|
46
47
|
build_number = latest_candidate_build.build_version
|
47
48
|
end
|
49
|
+
elsif version == 'live'
|
50
|
+
UI.message("Looking for live version...")
|
51
|
+
live_version = app.live_version(platform: platform)
|
52
|
+
|
53
|
+
UI.user_error!("Could not find live version for your app, please try setting 'latest' or a specific version") if live_version.nil?
|
54
|
+
|
55
|
+
# No need to search for candidates, because released App Store version should only have one build
|
56
|
+
version = live_version.version
|
57
|
+
build_number = live_version.build_version
|
58
|
+
end
|
59
|
+
|
60
|
+
# Remove leading zeros from version string (eg. 1.02 -> 1.2)
|
61
|
+
if version
|
62
|
+
version = version.split(".").map(&:to_i).join(".")
|
48
63
|
end
|
49
64
|
|
50
65
|
# Make sure output_directory has a slash on the end
|
@@ -101,7 +116,7 @@ module Fastlane
|
|
101
116
|
end
|
102
117
|
|
103
118
|
unless download_url
|
104
|
-
if !wait_for_dsym_processing || (Time.now - start) >
|
119
|
+
if !wait_for_dsym_processing || (Time.now - start) > wait_timeout
|
105
120
|
# In some cases, AppStoreConnect does not process the dSYMs, thus no error should be thrown.
|
106
121
|
UI.message("Could not find any dSYM for #{build.build_version} (#{train.version_string})")
|
107
122
|
else
|
@@ -231,7 +246,7 @@ module Fastlane
|
|
231
246
|
FastlaneCore::ConfigItem.new(key: :version,
|
232
247
|
short_option: "-v",
|
233
248
|
env_name: "DOWNLOAD_DSYMS_VERSION",
|
234
|
-
description: "The app version for dSYMs you wish to download, pass in 'latest' to download only the latest build's dSYMs",
|
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",
|
235
250
|
optional: true),
|
236
251
|
FastlaneCore::ConfigItem.new(key: :build_number,
|
237
252
|
short_option: "-b",
|
@@ -254,7 +269,14 @@ module Fastlane
|
|
254
269
|
description: "Wait for dSYMs to process",
|
255
270
|
optional: true,
|
256
271
|
default_value: false,
|
257
|
-
type: Boolean)
|
272
|
+
type: Boolean),
|
273
|
+
FastlaneCore::ConfigItem.new(key: :wait_timeout,
|
274
|
+
short_option: "-t",
|
275
|
+
env_name: "DOWNLOAD_DSYMS_WAIT_TIMEOUT",
|
276
|
+
description: "Number of seconds to wait for dSYMs to process",
|
277
|
+
optional: true,
|
278
|
+
default_value: 300,
|
279
|
+
type: Integer)
|
258
280
|
]
|
259
281
|
end
|
260
282
|
|
@@ -280,6 +302,7 @@ module Fastlane
|
|
280
302
|
[
|
281
303
|
'download_dsyms',
|
282
304
|
'download_dsyms(version: "1.0.0", build_number: "345")',
|
305
|
+
'download_dsyms(version: "live")',
|
283
306
|
'download_dsyms(min_version: "1.2.3")'
|
284
307
|
]
|
285
308
|
end
|