fastlane 2.141.0 → 2.142.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
|