fastlane 2.141.0 → 2.142.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +84 -84
- data/fastlane/lib/fastlane/actions/README.md +2 -0
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +13 -5
- data/fastlane/lib/fastlane/actions/cocoapods.rb +2 -2
- data/fastlane/lib/fastlane/actions/ensure_git_branch.rb +1 -1
- data/fastlane/lib/fastlane/actions/ensure_xcode_version.rb +35 -7
- data/fastlane/lib/fastlane/actions/get_github_release.rb +3 -0
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +9 -3
- data/fastlane/lib/fastlane/actions/notarize.rb +183 -0
- data/fastlane/lib/fastlane/actions/s3.rb +2 -2
- data/fastlane/lib/fastlane/actions/spm.rb +8 -0
- data/fastlane/lib/fastlane/actions/swiftlint.rb +17 -2
- data/fastlane/lib/fastlane/actions/upload_symbols_to_crashlytics.rb +13 -3
- data/fastlane/lib/fastlane/helper/adb_helper.rb +1 -1
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +1 -1
- data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +55 -6
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +5 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +2 -0
- data/fastlane_core/lib/fastlane_core/project.rb +4 -0
- data/gym/lib/gym/.code_signing_mapping.rb.swp +0 -0
- data/gym/lib/gym/runner.rb +2 -2
- data/match/lib/match/storage/google_cloud_storage.rb +2 -2
- data/pilot/lib/pilot/build_manager.rb +9 -3
- data/scan/lib/scan/options.rb +5 -0
- data/scan/lib/scan/runner.rb +9 -7
- data/scan/lib/scan/test_command_generator.rb +6 -3
- data/screengrab/lib/screengrab/runner.rb +20 -15
- data/snapshot/lib/snapshot/fixes/simulator_shared_pasteboard.rb +16 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +2 -0
- metadata +19 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 16f5d0c8e98d22db28cf818ffd26b3ecddf27f360bbe11174dd398d00f8d4a7c
|
4
|
+
data.tar.gz: 63fae2c4ff11cc689da7946ee00cfab6219da35aa70308e9b0d61ec09a91ce25
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e87a15a427996b6169a72f2b8c62d02016cc7ec7d6278ae9a427f7f44800682487739a5efd21596c1ea098f76b11431365a986dc02451854f113e5fca2489627
|
7
|
+
data.tar.gz: 2e88f0b54168f8cf9b252296e41a35e0f7231a4383a8838bb44864235d3cc00aeca5bdb81fe56c95985ebde78c401530aec9048efd755963c01cd993eed395c8
|
data/LICENSE
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
The MIT License (MIT)
|
2
2
|
|
3
|
-
Copyright (c) 2015-
|
3
|
+
Copyright (c) 2015-2020 The Fastlane Authors
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -34,49 +34,49 @@ 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='luka-mirosevic'>
|
38
|
+
<a href='https://github.com/lmirosevic'>
|
39
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
40
40
|
</a>
|
41
|
-
<h4 align='center'>
|
41
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</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='daniel-jankowski'>
|
50
|
+
<a href='https://github.com/mollyIV'>
|
51
|
+
<img src='https://github.com/mollyIV.png?size=140'>
|
52
52
|
</a>
|
53
|
-
<h4 align='center'><a href='https://twitter.com/
|
53
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
54
54
|
</td>
|
55
|
-
<td id='
|
56
|
-
<a href='https://github.com/
|
57
|
-
<img src='https://github.com/
|
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='joshua-liebowitz'>
|
62
|
+
<a href='https://github.com/taquitos'>
|
63
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
64
64
|
</a>
|
65
|
-
<h4 align='center'><a href='https://twitter.com/
|
65
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</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='josh-holtz'>
|
70
|
+
<a href='https://github.com/joshdholtz'>
|
71
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
72
72
|
</a>
|
73
|
-
<h4 align='center'><a href='https://twitter.com/
|
73
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
74
74
|
</td>
|
75
|
-
<td id='
|
76
|
-
<a href='https://github.com/
|
77
|
-
<img src='https://github.com/
|
75
|
+
<td id='jimmy-dee'>
|
76
|
+
<a href='https://github.com/jdee'>
|
77
|
+
<img src='https://github.com/jdee.png?size=140'>
|
78
78
|
</a>
|
79
|
-
<h4 align='center'
|
79
|
+
<h4 align='center'>Jimmy Dee</h4>
|
80
80
|
</td>
|
81
81
|
<td id='helmut-januschka'>
|
82
82
|
<a href='https://github.com/hjanuschka'>
|
@@ -84,95 +84,95 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
84
84
|
</a>
|
85
85
|
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
86
86
|
</td>
|
87
|
-
<td id='
|
88
|
-
<a href='https://github.com/
|
89
|
-
<img src='https://github.com/
|
87
|
+
<td id='olivier-halligon'>
|
88
|
+
<a href='https://github.com/AliSoftware'>
|
89
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
90
90
|
</a>
|
91
|
-
<h4 align='center'><a href='https://twitter.com/
|
91
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
92
92
|
</td>
|
93
|
-
<td id='
|
94
|
-
<a href='https://github.com/
|
95
|
-
<img src='https://github.com/
|
93
|
+
<td id='maksym-grebenets'>
|
94
|
+
<a href='https://github.com/mgrebenets'>
|
95
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
96
96
|
</a>
|
97
|
-
<h4 align='center'><a href='https://twitter.com/
|
97
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</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='jérôme-lacoste'>
|
102
|
+
<a href='https://github.com/lacostej'>
|
103
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
104
104
|
</a>
|
105
|
-
<h4 align='center'><a href='https://twitter.com/
|
105
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
106
106
|
</td>
|
107
|
-
<td id='
|
108
|
-
<a href='https://github.com/
|
109
|
-
<img src='https://github.com/
|
107
|
+
<td id='iulian-onofrei'>
|
108
|
+
<a href='https://github.com/revolter'>
|
109
|
+
<img src='https://github.com/revolter.png?size=140'>
|
110
110
|
</a>
|
111
|
-
<h4 align='center'><a href='https://twitter.com/
|
111
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
112
112
|
</td>
|
113
|
-
<td id='
|
114
|
-
<a href='https://github.com/
|
115
|
-
<img src='https://github.com/
|
113
|
+
<td id='danielle-tomlinson'>
|
114
|
+
<a href='https://github.com/endocrimes'>
|
115
|
+
<img src='https://github.com/endocrimes.png?size=140'>
|
116
116
|
</a>
|
117
|
-
<h4 align='center'><a href='https://twitter.com/
|
117
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
118
118
|
</td>
|
119
|
-
<td id='
|
120
|
-
<a href='https://github.com/
|
121
|
-
<img src='https://github.com/
|
119
|
+
<td id='fumiya-nakamura'>
|
120
|
+
<a href='https://github.com/nafu'>
|
121
|
+
<img src='https://github.com/nafu.png?size=140'>
|
122
122
|
</a>
|
123
|
-
<h4 align='center'><a href='https://twitter.com/
|
123
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
124
124
|
</td>
|
125
|
-
<td id='
|
126
|
-
<a href='https://github.com/
|
127
|
-
<img src='https://github.com/
|
125
|
+
<td id='andrew-mcburney'>
|
126
|
+
<a href='https://github.com/armcburney'>
|
127
|
+
<img src='https://github.com/armcburney.png?size=140'>
|
128
128
|
</a>
|
129
|
-
<h4 align='center'><a href='https://twitter.com/
|
129
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</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/
|
133
|
+
<td id='max-ott'>
|
134
|
+
<a href='https://github.com/max-ott'>
|
135
|
+
<img src='https://github.com/max-ott.png?size=140'>
|
136
136
|
</a>
|
137
|
-
<h4 align='center'><a href='https://twitter.com/
|
137
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
138
138
|
</td>
|
139
|
-
<td id='
|
140
|
-
<a href='https://github.com/
|
141
|
-
<img src='https://github.com/
|
139
|
+
<td id='felix-krause'>
|
140
|
+
<a href='https://github.com/KrauseFx'>
|
141
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
142
142
|
</a>
|
143
|
-
<h4 align='center'><a href='https://twitter.com/
|
143
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
144
144
|
</td>
|
145
|
-
<td id='
|
146
|
-
<a href='https://github.com/
|
147
|
-
<img src='https://github.com/
|
145
|
+
<td id='aaron-brager'>
|
146
|
+
<a href='https://github.com/getaaron'>
|
147
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
148
148
|
</a>
|
149
|
-
<h4 align='center'><a href='https://twitter.com/
|
149
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
150
150
|
</td>
|
151
|
-
<td id='
|
152
|
-
<a href='https://github.com/
|
153
|
-
<img src='https://github.com/
|
151
|
+
<td id='kohki-miki'>
|
152
|
+
<a href='https://github.com/giginet'>
|
153
|
+
<img src='https://github.com/giginet.png?size=140'>
|
154
154
|
</a>
|
155
|
-
<h4 align='center'><a href='https://twitter.com/
|
155
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
156
156
|
</td>
|
157
|
-
<td id='
|
158
|
-
<a href='https://github.com/
|
159
|
-
<img src='https://github.com/
|
157
|
+
<td id='manu-wallner'>
|
158
|
+
<a href='https://github.com/milch'>
|
159
|
+
<img src='https://github.com/milch.png?size=140'>
|
160
160
|
</a>
|
161
|
-
<h4 align='center'><a href='https://twitter.com/
|
161
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
162
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='jan-piotrowski'>
|
166
|
+
<a href='https://github.com/janpio'>
|
167
|
+
<img src='https://github.com/janpio.png?size=140'>
|
168
168
|
</a>
|
169
|
-
<h4 align='center'><a href='https://twitter.com/
|
169
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
170
170
|
</td>
|
171
|
-
<td id='
|
172
|
-
<a href='https://github.com/
|
173
|
-
<img src='https://github.com/
|
171
|
+
<td id='matthew-ellis'>
|
172
|
+
<a href='https://github.com/matthewellis'>
|
173
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
174
174
|
</a>
|
175
|
-
<h4 align='center'><a href='https://twitter.com/
|
175
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
176
176
|
</td>
|
177
177
|
</table>
|
178
178
|
|
@@ -1,3 +1,5 @@
|
|
1
1
|
All built-in integrations are available in this directory. Use the `fastlane new_action` command to create a new action.
|
2
2
|
|
3
3
|
_fastlane_ will automatically detect the files in this folder
|
4
|
+
|
5
|
+
All available actions are listed and documented on https://docs.fastlane.tools/actions/. Documentation for individual actions is available on https://docs.fastlane.tools/actions/%action_name%, e.g. https://docs.fastlane.tools/actions/copy_artifacts/.
|
@@ -1,14 +1,18 @@
|
|
1
|
+
require 'ostruct'
|
2
|
+
|
1
3
|
module Fastlane
|
2
4
|
module Actions
|
3
5
|
module SharedValues
|
4
6
|
LATEST_BUILD_NUMBER = :LATEST_BUILD_NUMBER
|
7
|
+
LATEST_VERSION = :LATEST_VERSION
|
5
8
|
end
|
6
9
|
|
7
10
|
class AppStoreBuildNumberAction < Action
|
8
11
|
def self.run(params)
|
9
12
|
require 'spaceship'
|
10
13
|
|
11
|
-
|
14
|
+
result = get_build_number(params)
|
15
|
+
build_nr = result.build_nr
|
12
16
|
|
13
17
|
# Convert build_nr to int (for legacy use) if no "." in string
|
14
18
|
if build_nr.kind_of?(String) && !build_nr.include?(".")
|
@@ -16,6 +20,9 @@ module Fastlane
|
|
16
20
|
end
|
17
21
|
|
18
22
|
Actions.lane_context[SharedValues::LATEST_BUILD_NUMBER] = build_nr
|
23
|
+
Actions.lane_context[SharedValues::LATEST_VERSION] = result.build_v
|
24
|
+
|
25
|
+
return build_nr
|
19
26
|
end
|
20
27
|
|
21
28
|
def self.get_build_number(params)
|
@@ -33,7 +40,7 @@ module Fastlane
|
|
33
40
|
|
34
41
|
UI.message("Latest upload for live-version #{app.live_version.version} is build: #{build_nr}")
|
35
42
|
|
36
|
-
return build_nr
|
43
|
+
return OpenStruct.new({ build_nr: build_nr, build_v: app.live_version.version })
|
37
44
|
else
|
38
45
|
version_number = params[:version]
|
39
46
|
platform = params[:platform]
|
@@ -61,7 +68,7 @@ module Fastlane
|
|
61
68
|
if build
|
62
69
|
build_nr = build.version
|
63
70
|
UI.message("Latest upload for version #{build.app_version} on #{platform_message} is build: #{build_nr}")
|
64
|
-
return build_nr
|
71
|
+
return OpenStruct.new({ build_nr: build_nr, build_v: build.app_version })
|
65
72
|
end
|
66
73
|
|
67
74
|
# Let user know that build couldn't be found
|
@@ -72,7 +79,7 @@ module Fastlane
|
|
72
79
|
else
|
73
80
|
build_nr = params[:initial_build_number]
|
74
81
|
UI.message("Using initial build number of #{build_nr}")
|
75
|
-
return build_nr
|
82
|
+
return OpenStruct.new({ build_nr: build_nr, build_v: version_number })
|
76
83
|
end
|
77
84
|
end
|
78
85
|
end
|
@@ -159,7 +166,8 @@ module Fastlane
|
|
159
166
|
|
160
167
|
def self.output
|
161
168
|
[
|
162
|
-
['LATEST_BUILD_NUMBER', 'The latest build number of either live or testflight version']
|
169
|
+
['LATEST_BUILD_NUMBER', 'The latest build number of either live or testflight version'],
|
170
|
+
['LATEST_VERSION', 'The version of the latest build number']
|
163
171
|
]
|
164
172
|
end
|
165
173
|
|
@@ -19,7 +19,7 @@ module Fastlane
|
|
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
|
+
cmd << '--clean-install' if params[:clean_install] && pod_version(params).to_f >= 1.7
|
23
23
|
cmd << '--repo-update' if params[:repo_update]
|
24
24
|
cmd << '--silent' if params[:silent]
|
25
25
|
cmd << '--verbose' if params[:verbose]
|
@@ -42,7 +42,7 @@ module Fastlane
|
|
42
42
|
params[:use_bundle_exec] && shell_out_should_use_bundle_exec?
|
43
43
|
end
|
44
44
|
|
45
|
-
def self.pod_version
|
45
|
+
def self.pod_version(params)
|
46
46
|
use_bundle_exec?(params) ? `bundle exec pod --version` : `pod --version`
|
47
47
|
end
|
48
48
|
|
@@ -34,7 +34,7 @@ module Fastlane
|
|
34
34
|
[
|
35
35
|
FastlaneCore::ConfigItem.new(key: :branch,
|
36
36
|
env_name: "FL_ENSURE_GIT_BRANCH_NAME",
|
37
|
-
description: "The branch that should be checked for. String that can be either the full name of the branch or a regex to match",
|
37
|
+
description: "The branch that should be checked for. String that can be either the full name of the branch or a regex e.g. `^feature\/.*$` to match",
|
38
38
|
is_string: true,
|
39
39
|
default_value: 'master')
|
40
40
|
]
|
@@ -4,6 +4,7 @@ module Fastlane
|
|
4
4
|
def self.run(params)
|
5
5
|
Actions.verify_gem!('xcode-install')
|
6
6
|
required_version = params[:version]
|
7
|
+
strict = params[:strict]
|
7
8
|
|
8
9
|
if required_version.to_s.length == 0
|
9
10
|
# The user didn't provide an Xcode version, let's see
|
@@ -30,16 +31,38 @@ module Fastlane
|
|
30
31
|
UI.user_error!("Invalid version number provided, make sure it's valid: #{ex}")
|
31
32
|
end
|
32
33
|
|
33
|
-
if
|
34
|
-
|
34
|
+
if strict == true
|
35
|
+
if selected_version == required_version
|
36
|
+
success(selected_version)
|
37
|
+
else
|
38
|
+
error(selected_version, required_version)
|
39
|
+
end
|
35
40
|
else
|
36
|
-
|
37
|
-
|
41
|
+
required_version_numbers = required_version.to_s.split(".")
|
42
|
+
selected_version_numbers = selected_version.to_s.split(".")
|
43
|
+
|
44
|
+
required_version_numbers.each_with_index do |required_version_number, index|
|
45
|
+
selected_version_number = selected_version_numbers[index]
|
46
|
+
next unless required_version_number != selected_version_number
|
47
|
+
error(selected_version, required_version)
|
48
|
+
break
|
49
|
+
end
|
38
50
|
|
39
|
-
|
51
|
+
success(selected_version)
|
40
52
|
end
|
41
53
|
end
|
42
54
|
|
55
|
+
def self.success(selected_version)
|
56
|
+
UI.success("Selected Xcode version is correct: #{selected_version}")
|
57
|
+
end
|
58
|
+
|
59
|
+
def self.error(selected_version, required_version)
|
60
|
+
UI.message("Selected Xcode version is not correct: #{selected_version}. You expected #{required_version}.")
|
61
|
+
UI.message("To correct this, use: `xcode_select(version: #{required_version})`.")
|
62
|
+
|
63
|
+
UI.user_error!("Selected Xcode version doesn't match your requirement.\nExpected: Xcode #{required_version}\nActual: Xcode #{selected_version}\n")
|
64
|
+
end
|
65
|
+
|
43
66
|
#####################################################
|
44
67
|
# @!group Documentation
|
45
68
|
#####################################################
|
@@ -52,7 +75,8 @@ module Fastlane
|
|
52
75
|
[
|
53
76
|
"If building your app requires a specific version of Xcode, you can invoke this command before using gym.",
|
54
77
|
"For example, to ensure that a beta version of Xcode is not accidentally selected to build, which would make uploading to TestFlight fail.",
|
55
|
-
"You can either manually provide a specific version using `version: ` or you make use of the `.xcode-version` file."
|
78
|
+
"You can either manually provide a specific version using `version: ` or you make use of the `.xcode-version` file.",
|
79
|
+
"Using the `strict` parameter, you can either verify the full set of version numbers strictly (i.e. `11.3.1`) or only a subset of them (i.e. `11.3` or `11`)."
|
56
80
|
].join("\n")
|
57
81
|
end
|
58
82
|
|
@@ -62,7 +86,11 @@ module Fastlane
|
|
62
86
|
env_name: "FL_ENSURE_XCODE_VERSION",
|
63
87
|
description: "Xcode version to verify that is selected",
|
64
88
|
is_string: true,
|
65
|
-
optional: true)
|
89
|
+
optional: true),
|
90
|
+
FastlaneCore::ConfigItem.new(key: :strict,
|
91
|
+
description: "Should the version be verified strictly (all 3 version numbers), or matching only the given version numbers (i.e. `11.3` == `11.3.x`)",
|
92
|
+
type: Boolean,
|
93
|
+
default_value: true)
|
66
94
|
]
|
67
95
|
end
|
68
96
|
|
@@ -129,6 +129,9 @@ module Fastlane
|
|
129
129
|
FastlaneCore::ConfigItem.new(key: :api_token,
|
130
130
|
env_name: "FL_GITHUB_RELEASE_API_TOKEN",
|
131
131
|
sensitive: true,
|
132
|
+
code_gen_sensitive: true,
|
133
|
+
default_value: ENV["GITHUB_API_TOKEN"],
|
134
|
+
default_value_dynamic: true,
|
132
135
|
description: "GitHub Personal Token (required for private repositories)",
|
133
136
|
optional: true)
|
134
137
|
]
|
@@ -4,12 +4,17 @@ module Fastlane
|
|
4
4
|
module Actions
|
5
5
|
module SharedValues
|
6
6
|
LATEST_TESTFLIGHT_BUILD_NUMBER = :LATEST_TESTFLIGHT_BUILD_NUMBER
|
7
|
+
LATEST_TESTFLIGHT_VERSION = :LATEST_TESTFLIGHT_VERSION
|
7
8
|
end
|
8
9
|
|
9
10
|
class LatestTestflightBuildNumberAction < Action
|
10
11
|
def self.run(params)
|
11
|
-
|
12
|
-
Actions.lane_context[SharedValues::
|
12
|
+
AppStoreBuildNumberAction.run(params)
|
13
|
+
build_nr = Actions.lane_context[SharedValues::LATEST_BUILD_NUMBER]
|
14
|
+
build_v = Actions.lane_context[SharedValues::LATEST_VERSION]
|
15
|
+
Actions.lane_context[SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER] = build_nr
|
16
|
+
Actions.lane_context[SharedValues::LATEST_TESTFLIGHT_VERSION] = build_v
|
17
|
+
return build_nr
|
13
18
|
end
|
14
19
|
|
15
20
|
#####################################################
|
@@ -93,7 +98,8 @@ module Fastlane
|
|
93
98
|
|
94
99
|
def self.output
|
95
100
|
[
|
96
|
-
['LATEST_TESTFLIGHT_BUILD_NUMBER', 'The latest build number of the latest version of the app uploaded to TestFlight']
|
101
|
+
['LATEST_TESTFLIGHT_BUILD_NUMBER', 'The latest build number of the latest version of the app uploaded to TestFlight'],
|
102
|
+
['LATEST_TESTFLIGHT_VERSION', 'The version of the latest build number']
|
97
103
|
]
|
98
104
|
end
|
99
105
|
|