fastlane 2.193.0 → 2.196.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 +86 -86
- data/cert/lib/cert/options.rb +1 -1
- data/deliver/lib/deliver/options.rb +1 -1
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +13 -7
- data/fastlane/lib/fastlane/actions/gradle.rb +16 -3
- data/fastlane/lib/fastlane/actions/last_git_commit.rb +1 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +3 -4
- data/fastlane/lib/fastlane/actions/notarize.rb +27 -18
- data/fastlane/lib/fastlane/actions/prompt.rb +1 -1
- data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
- data/fastlane/lib/fastlane/actions/register_devices.rb +1 -1
- data/fastlane/lib/fastlane/actions/set_changelog.rb +1 -1
- data/fastlane/lib/fastlane/actions/slather.rb +6 -0
- data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +11 -5
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +79 -100
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +11 -3
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/Runner.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +3 -3
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/formatting/Brewfile.lock.json +17 -17
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +1 -1
- data/fastlane_core/lib/fastlane_core/pkg_file_analyser.rb +5 -0
- data/match/lib/match/generator.rb +2 -1
- data/match/lib/match/options.rb +12 -2
- data/match/lib/match/runner.rb +95 -10
- data/pem/lib/pem/manager.rb +2 -1
- data/pem/lib/pem/options.rb +1 -1
- data/pilot/lib/pilot/options.rb +1 -1
- data/precheck/lib/precheck/options.rb +1 -1
- data/screengrab/lib/screengrab/options.rb +2 -2
- data/sigh/lib/assets/resign.sh +9 -6
- data/sigh/lib/sigh/options.rb +6 -1
- data/sigh/lib/sigh/runner.rb +2 -2
- data/snapshot/lib/snapshot/options.rb +1 -1
- data/snapshot/lib/snapshot/reports_generator.rb +8 -0
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +9 -1
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/token.rb +1 -1
- data/supply/lib/supply/client.rb +3 -3
- data/supply/lib/supply/uploader.rb +10 -7
- metadata +39 -39
- data/fastlane/lib/fastlane/actions/crashlytics.rb +0 -207
- data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +0 -157
- data/match/lib/match/storage/.git_storage.rb.swp +0 -0
- data/match/lib/match/storage/.interface.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: 470f259a547c6b79dcb0015c1688edcdedd67fce63d7a53d5fe47caee659b233
|
4
|
+
data.tar.gz: 0dfac1fb999ccf2b25ebfd301dcd1347c9d6f67b469b8d785424fa8b26f9a0fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a7e5dec51ab3c6baebc067b7549429947bf471e112251a8eadbee68ac4f2ea79c096e4664321f54e614184d2303d2163e339d2b6d8856c807ed382bf8620d47
|
7
|
+
data.tar.gz: 66090dc209412cce666bf4b29a0bf2f7103ed1dcec60097e01607f46e812d278c70c288a6ba615e891bc857f6ca0dda340e02d882849ab3e642aabd5a9013016
|
data/README.md
CHANGED
@@ -35,23 +35,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
35
35
|
<!-- This table is regenerated and resorted on each release -->
|
36
36
|
<table id='team'>
|
37
37
|
<tr>
|
38
|
-
<td id='
|
39
|
-
<a href='https://github.com/
|
40
|
-
<img src='https://github.com/
|
41
|
-
</a>
|
42
|
-
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
43
|
-
</td>
|
44
|
-
<td id='helmut-januschka'>
|
45
|
-
<a href='https://github.com/hjanuschka'>
|
46
|
-
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
47
|
-
</a>
|
48
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
49
|
-
</td>
|
50
|
-
<td id='manish-rathi'>
|
51
|
-
<a href='https://github.com/crazymanish'>
|
52
|
-
<img src='https://github.com/crazymanish.png' width='140px;'>
|
38
|
+
<td id='stefan-natchev'>
|
39
|
+
<a href='https://github.com/snatchev'>
|
40
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
53
41
|
</a>
|
54
|
-
<h4 align='center'><a href='https://twitter.com/
|
42
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
55
43
|
</td>
|
56
44
|
<td id='jorge-revuelta-h'>
|
57
45
|
<a href='https://github.com/minuscorp'>
|
@@ -59,43 +47,55 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
59
47
|
</a>
|
60
48
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
61
49
|
</td>
|
62
|
-
<td id='
|
63
|
-
<a href='https://github.com/
|
64
|
-
<img src='https://github.com/
|
50
|
+
<td id='jérôme-lacoste'>
|
51
|
+
<a href='https://github.com/lacostej'>
|
52
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
65
53
|
</a>
|
66
|
-
<h4 align='center'>
|
54
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
55
|
+
</td>
|
56
|
+
<td id='olivier-halligon'>
|
57
|
+
<a href='https://github.com/AliSoftware'>
|
58
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
59
|
+
</a>
|
60
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
61
|
+
</td>
|
62
|
+
<td id='roger-oba'>
|
63
|
+
<a href='https://github.com/rogerluan'>
|
64
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
65
|
+
</a>
|
66
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
67
67
|
</td>
|
68
68
|
</tr>
|
69
69
|
<tr>
|
70
|
-
<td id='
|
71
|
-
<a href='https://github.com/
|
72
|
-
<img src='https://github.com/
|
70
|
+
<td id='maksym-grebenets'>
|
71
|
+
<a href='https://github.com/mgrebenets'>
|
72
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
73
73
|
</a>
|
74
|
-
<h4 align='center'><a href='https://twitter.com/
|
74
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
75
75
|
</td>
|
76
|
-
<td id='
|
77
|
-
<a href='https://github.com/
|
78
|
-
<img src='https://github.com/
|
76
|
+
<td id='manish-rathi'>
|
77
|
+
<a href='https://github.com/crazymanish'>
|
78
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
79
79
|
</a>
|
80
|
-
<h4 align='center'><a href='https://twitter.com/
|
80
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
81
81
|
</td>
|
82
|
-
<td id='
|
83
|
-
<a href='https://github.com/
|
84
|
-
<img src='https://github.com/
|
82
|
+
<td id='helmut-januschka'>
|
83
|
+
<a href='https://github.com/hjanuschka'>
|
84
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
85
85
|
</a>
|
86
|
-
<h4 align='center'><a href='https://twitter.com/
|
86
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
87
87
|
</td>
|
88
|
-
<td id='
|
89
|
-
<a href='https://github.com/
|
90
|
-
<img src='https://github.com/
|
88
|
+
<td id='matthew-ellis'>
|
89
|
+
<a href='https://github.com/matthewellis'>
|
90
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
91
91
|
</a>
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
92
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
93
93
|
</td>
|
94
|
-
<td id='
|
95
|
-
<a href='https://github.com/
|
96
|
-
<img src='https://github.com/
|
94
|
+
<td id='kohki-miki'>
|
95
|
+
<a href='https://github.com/giginet'>
|
96
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
97
97
|
</a>
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
98
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
99
99
|
</td>
|
100
100
|
</tr>
|
101
101
|
<tr>
|
@@ -105,11 +105,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
105
105
|
</a>
|
106
106
|
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
107
107
|
</td>
|
108
|
-
<td id='
|
109
|
-
<a href='https://github.com/
|
110
|
-
<img src='https://github.com/
|
108
|
+
<td id='danielle-tomlinson'>
|
109
|
+
<a href='https://github.com/endocrimes'>
|
110
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
111
111
|
</a>
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
112
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
113
113
|
</td>
|
114
114
|
<td id='fumiya-nakamura'>
|
115
115
|
<a href='https://github.com/nafu'>
|
@@ -117,49 +117,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
117
117
|
</a>
|
118
118
|
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
119
119
|
</td>
|
120
|
-
<td id='
|
121
|
-
<a href='https://github.com/
|
122
|
-
<img src='https://github.com/
|
120
|
+
<td id='jan-piotrowski'>
|
121
|
+
<a href='https://github.com/janpio'>
|
122
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
123
123
|
</a>
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
124
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
125
125
|
</td>
|
126
|
-
<td id='
|
127
|
-
<a href='https://github.com/
|
128
|
-
<img src='https://github.com/
|
126
|
+
<td id='satoshi-namai'>
|
127
|
+
<a href='https://github.com/ainame'>
|
128
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
129
129
|
</a>
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
130
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
131
131
|
</td>
|
132
132
|
</tr>
|
133
133
|
<tr>
|
134
|
-
<td id='
|
135
|
-
<a href='https://github.com/
|
136
|
-
<img src='https://github.com/
|
134
|
+
<td id='luka-mirosevic'>
|
135
|
+
<a href='https://github.com/lmirosevic'>
|
136
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
137
137
|
</a>
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
138
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
139
139
|
</td>
|
140
|
-
<td id='
|
141
|
-
<a href='https://github.com/
|
142
|
-
<img src='https://github.com/
|
140
|
+
<td id='felix-krause'>
|
141
|
+
<a href='https://github.com/KrauseFx'>
|
142
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
143
143
|
</a>
|
144
|
-
<h4 align='center'><a href='https://twitter.com/
|
144
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
145
145
|
</td>
|
146
|
-
<td id='
|
147
|
-
<a href='https://github.com/
|
148
|
-
<img src='https://github.com/
|
146
|
+
<td id='josh-holtz'>
|
147
|
+
<a href='https://github.com/joshdholtz'>
|
148
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
149
149
|
</a>
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
150
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
151
151
|
</td>
|
152
|
-
<td id='
|
153
|
-
<a href='https://github.com/
|
154
|
-
<img src='https://github.com/
|
152
|
+
<td id='aaron-brager'>
|
153
|
+
<a href='https://github.com/getaaron'>
|
154
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
155
155
|
</a>
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
156
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
157
157
|
</td>
|
158
|
-
<td id='
|
159
|
-
<a href='https://github.com/
|
160
|
-
<img src='https://github.com/
|
158
|
+
<td id='jimmy-dee'>
|
159
|
+
<a href='https://github.com/jdee'>
|
160
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
161
161
|
</a>
|
162
|
-
<h4 align='center'
|
162
|
+
<h4 align='center'>Jimmy Dee</h4>
|
163
163
|
</td>
|
164
164
|
</tr>
|
165
165
|
<tr>
|
@@ -169,17 +169,11 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
169
169
|
</a>
|
170
170
|
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
171
171
|
</td>
|
172
|
-
<td id='
|
173
|
-
<a href='https://github.com/
|
174
|
-
<img src='https://github.com/
|
175
|
-
</a>
|
176
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
177
|
-
</td>
|
178
|
-
<td id='luka-mirosevic'>
|
179
|
-
<a href='https://github.com/lmirosevic'>
|
180
|
-
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
172
|
+
<td id='andrew-mcburney'>
|
173
|
+
<a href='https://github.com/armcburney'>
|
174
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
181
175
|
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
176
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
183
177
|
</td>
|
184
178
|
<td id='manu-wallner'>
|
185
179
|
<a href='https://github.com/milch'>
|
@@ -187,11 +181,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
187
181
|
</a>
|
188
182
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
189
183
|
</td>
|
190
|
-
<td id='
|
191
|
-
<a href='https://github.com/
|
192
|
-
<img src='https://github.com/
|
184
|
+
<td id='joshua-liebowitz'>
|
185
|
+
<a href='https://github.com/taquitos'>
|
186
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
193
187
|
</a>
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
188
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
189
|
+
</td>
|
190
|
+
<td id='iulian-onofrei'>
|
191
|
+
<a href='https://github.com/revolter'>
|
192
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
193
|
+
</a>
|
194
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
195
195
|
</td>
|
196
196
|
</tr>
|
197
197
|
</table>
|
data/cert/lib/cert/options.rb
CHANGED
@@ -47,7 +47,7 @@ module Cert
|
|
47
47
|
end),
|
48
48
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
49
49
|
env_names: ["CERT_API_KEY", "DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
50
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#
|
50
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
51
51
|
type: Hash,
|
52
52
|
optional: true,
|
53
53
|
sensitive: true,
|
@@ -22,7 +22,7 @@ module Deliver
|
|
22
22
|
end),
|
23
23
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
24
24
|
env_names: ["DELIVER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
25
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#
|
25
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
26
26
|
type: Hash,
|
27
27
|
optional: true,
|
28
28
|
sensitive: true,
|
@@ -9,9 +9,18 @@ module Fastlane
|
|
9
9
|
|
10
10
|
class AppStoreBuildNumberAction < Action
|
11
11
|
def self.run(params)
|
12
|
+
build_v, build_nr = get_build_version_and_number(params)
|
13
|
+
|
14
|
+
Actions.lane_context[SharedValues::LATEST_BUILD_NUMBER] = build_nr
|
15
|
+
Actions.lane_context[SharedValues::LATEST_VERSION] = build_v
|
16
|
+
|
17
|
+
return build_nr
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.get_build_version_and_number(params)
|
12
21
|
require 'spaceship'
|
13
22
|
|
14
|
-
result =
|
23
|
+
result = get_build_info(params)
|
15
24
|
build_nr = result.build_nr
|
16
25
|
|
17
26
|
# Convert build_nr to int (for legacy use) if no "." in string
|
@@ -19,13 +28,10 @@ module Fastlane
|
|
19
28
|
build_nr = build_nr.to_i
|
20
29
|
end
|
21
30
|
|
22
|
-
|
23
|
-
Actions.lane_context[SharedValues::LATEST_VERSION] = result.build_v
|
24
|
-
|
25
|
-
return build_nr
|
31
|
+
return result.build_v, build_nr
|
26
32
|
end
|
27
33
|
|
28
|
-
def self.
|
34
|
+
def self.get_build_info(params)
|
29
35
|
# Prompts select team if multiple teams and none specified
|
30
36
|
if (api_token = Spaceship::ConnectAPI::Token.from(hash: params[:api_key], filepath: params[:api_key_path]))
|
31
37
|
UI.message("Creating authorization token for App Store Connect API")
|
@@ -125,7 +131,7 @@ module Fastlane
|
|
125
131
|
end),
|
126
132
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
127
133
|
env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
128
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#
|
134
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
129
135
|
type: Hash,
|
130
136
|
default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
|
131
137
|
default_value_dynamic: true,
|
@@ -64,7 +64,7 @@ module Fastlane
|
|
64
64
|
print_command_output: params[:print_command_output])
|
65
65
|
|
66
66
|
# If we didn't build, then we return now, as it makes no sense to search for apk's in a non-`assemble` or non-`build` scenario
|
67
|
-
return result unless
|
67
|
+
return result unless gradle_task =~ /\b(assemble)/ || gradle_task =~ /\b(bundle)/
|
68
68
|
|
69
69
|
apk_search_path = File.join(project_dir, '**', 'build', 'outputs', 'apk', '**', '*.apk')
|
70
70
|
aab_search_path = File.join(project_dir, '**', 'build', 'outputs', 'bundle', '**', '*.aab')
|
@@ -258,8 +258,21 @@ module Fastlane
|
|
258
258
|
# ...
|
259
259
|
|
260
260
|
properties: {
|
261
|
-
"
|
262
|
-
"
|
261
|
+
"exampleNumber" => 100,
|
262
|
+
"exampleString" => "1.0.0",
|
263
|
+
# ...
|
264
|
+
}
|
265
|
+
)
|
266
|
+
```
|
267
|
+
|
268
|
+
You can use this to change the version code and name of your app:
|
269
|
+
```ruby
|
270
|
+
gradle(
|
271
|
+
# ...
|
272
|
+
|
273
|
+
properties: {
|
274
|
+
"android.injected.version.code" => 100,
|
275
|
+
"android.injected.version.name" => "1.0.0",
|
263
276
|
# ...
|
264
277
|
}
|
265
278
|
)
|
@@ -32,7 +32,7 @@ module Fastlane
|
|
32
32
|
def self.example_code
|
33
33
|
[
|
34
34
|
'commit = last_git_commit
|
35
|
-
|
35
|
+
pilot(changelog: commit[:message]) # message of commit
|
36
36
|
author = commit[:author] # author of the commit
|
37
37
|
author_email = commit[:author_email] # email of the author of the commit
|
38
38
|
hash = commit[:commit_hash] # long sha of commit
|
@@ -9,9 +9,8 @@ module Fastlane
|
|
9
9
|
|
10
10
|
class LatestTestflightBuildNumberAction < Action
|
11
11
|
def self.run(params)
|
12
|
-
AppStoreBuildNumberAction.
|
13
|
-
|
14
|
-
build_v = Actions.lane_context[SharedValues::LATEST_VERSION]
|
12
|
+
build_v, build_nr = AppStoreBuildNumberAction.get_build_version_and_number(params)
|
13
|
+
|
15
14
|
Actions.lane_context[SharedValues::LATEST_TESTFLIGHT_BUILD_NUMBER] = build_nr
|
16
15
|
Actions.lane_context[SharedValues::LATEST_TESTFLIGHT_VERSION] = build_v
|
17
16
|
return build_nr
|
@@ -47,7 +46,7 @@ module Fastlane
|
|
47
46
|
end),
|
48
47
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
49
48
|
env_names: ["APPSTORE_BUILD_NUMBER_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
50
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#
|
49
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
51
50
|
type: Hash,
|
52
51
|
optional: true,
|
53
52
|
sensitive: true,
|
@@ -8,7 +8,12 @@ module Fastlane
|
|
8
8
|
try_early_stapling = params[:try_early_stapling]
|
9
9
|
print_log = params[:print_log]
|
10
10
|
verbose = params[:verbose]
|
11
|
-
|
11
|
+
|
12
|
+
# Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
|
13
|
+
unless params[:api_key_path]
|
14
|
+
params[:api_key] ||= Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY]
|
15
|
+
end
|
16
|
+
api_key = Spaceship::ConnectAPI::Token.from(hash: params[:api_key], filepath: params[:api_key_path])
|
12
17
|
|
13
18
|
use_notarytool = params[:use_notarytool]
|
14
19
|
|
@@ -33,20 +38,18 @@ module Fastlane
|
|
33
38
|
UI.user_error!('Could not read bundle identifier, provide as a parameter') unless bundle_id
|
34
39
|
|
35
40
|
if use_notarytool
|
36
|
-
notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose,
|
41
|
+
notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
|
37
42
|
else
|
38
|
-
altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose,
|
43
|
+
altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
|
39
44
|
end
|
40
45
|
end
|
41
46
|
|
42
|
-
def self.notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose,
|
47
|
+
def self.notarytool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
|
43
48
|
temp_file = nil
|
44
49
|
|
45
50
|
# Create authorization part of command with either API Key or Apple ID
|
46
51
|
auth_parts = []
|
47
|
-
if
|
48
|
-
api_key = Spaceship::ConnectAPI::Token.from_json_file(api_key_path)
|
49
|
-
|
52
|
+
if api_key
|
50
53
|
# Writes key contents to temporary file for command
|
51
54
|
require 'tempfile'
|
52
55
|
temp_file = Tempfile.new
|
@@ -99,14 +102,14 @@ module Fastlane
|
|
99
102
|
temp_file.delete if temp_file
|
100
103
|
end
|
101
104
|
|
102
|
-
def self.altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose,
|
105
|
+
def self.altool(params, package_path, bundle_id, try_early_stapling, print_log, verbose, api_key, compressed_package_path)
|
103
106
|
UI.message('Uploading package to notarization service, might take a while')
|
104
107
|
|
105
108
|
notarization_upload_command = "xcrun altool --notarize-app -t osx -f \"#{compressed_package_path || package_path}\" --primary-bundle-id #{bundle_id} --output-format xml"
|
106
109
|
|
107
110
|
notarization_info = {}
|
108
|
-
with_notarize_authenticator(params,
|
109
|
-
notarization_upload_command << " --asc-provider \"#{params[:asc_provider]}\"" if params[:asc_provider] &&
|
111
|
+
with_notarize_authenticator(params, api_key) do |notarize_authenticator|
|
112
|
+
notarization_upload_command << " --asc-provider \"#{params[:asc_provider]}\"" if params[:asc_provider] && api_key.nil?
|
110
113
|
|
111
114
|
notarization_upload_response = Actions.sh(
|
112
115
|
notarize_authenticator.call(notarization_upload_command),
|
@@ -200,11 +203,10 @@ module Fastlane
|
|
200
203
|
)
|
201
204
|
end
|
202
205
|
|
203
|
-
def self.with_notarize_authenticator(params,
|
204
|
-
if
|
206
|
+
def self.with_notarize_authenticator(params, api_key)
|
207
|
+
if api_key
|
205
208
|
# From xcrun altool for --apiKey:
|
206
209
|
# This option will search the following directories in sequence for a private key file with the name of 'AuthKey_<api_key>.p8': './private_keys', '~/private_keys', '~/.private_keys', and '~/.appstoreconnect/private_keys'.
|
207
|
-
api_key = Spaceship::ConnectAPI::Token.from_json_file(api_key_path)
|
208
210
|
api_key_folder_path = File.expand_path('~/.appstoreconnect/private_keys')
|
209
211
|
api_key_file_path = File.join(api_key_folder_path, "AuthKey_#{api_key.key_id}.p8")
|
210
212
|
directory_exists = File.directory?(api_key_folder_path)
|
@@ -271,7 +273,7 @@ module Fastlane
|
|
271
273
|
description: 'Apple ID username',
|
272
274
|
default_value: username,
|
273
275
|
optional: true,
|
274
|
-
conflicting_options: [:api_key_path],
|
276
|
+
conflicting_options: [:api_key_path, :api_key],
|
275
277
|
default_value_dynamic: true),
|
276
278
|
FastlaneCore::ConfigItem.new(key: :asc_provider,
|
277
279
|
env_name: 'FL_NOTARIZE_ASC_PROVIDER',
|
@@ -291,13 +293,20 @@ module Fastlane
|
|
291
293
|
default_value: false,
|
292
294
|
type: Boolean),
|
293
295
|
FastlaneCore::ConfigItem.new(key: :api_key_path,
|
294
|
-
|
295
|
-
description:
|
296
|
+
env_names: ['FL_NOTARIZE_API_KEY_PATH', "APP_STORE_CONNECT_API_KEY_PATH"],
|
297
|
+
description: "Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)",
|
296
298
|
optional: true,
|
297
|
-
conflicting_options: [:username],
|
299
|
+
conflicting_options: [:username, :api_key],
|
298
300
|
verify_block: proc do |value|
|
299
301
|
UI.user_error!("API Key not found at '#{value}'") unless File.exist?(value)
|
300
|
-
end)
|
302
|
+
end),
|
303
|
+
FastlaneCore::ConfigItem.new(key: :api_key,
|
304
|
+
env_names: ['FL_NOTARIZE_API_KEY', "APP_STORE_CONNECT_API_KEY"],
|
305
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
306
|
+
optional: true,
|
307
|
+
conflicting_options: [:username, :api_key_path],
|
308
|
+
sensitive: true,
|
309
|
+
type: Hash)
|
301
310
|
]
|
302
311
|
end
|
303
312
|
|
@@ -73,7 +73,7 @@ module Fastlane
|
|
73
73
|
end),
|
74
74
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
75
75
|
env_names: ["FL_REGISTER_DEVICE_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
76
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#
|
76
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
77
77
|
type: Hash,
|
78
78
|
default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
|
79
79
|
default_value_dynamic: true,
|
@@ -121,7 +121,7 @@ module Fastlane
|
|
121
121
|
end),
|
122
122
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
123
123
|
env_names: ["FL_REGISTER_DEVICES_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
124
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#
|
124
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
125
125
|
type: Hash,
|
126
126
|
default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
|
127
127
|
default_value_dynamic: true,
|
@@ -115,7 +115,7 @@ module Fastlane
|
|
115
115
|
end),
|
116
116
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
117
117
|
env_names: ["FL_SET_CHANGELOG_API_KEY", "APP_STORE_CONNECT_API_KEY"],
|
118
|
-
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#
|
118
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
119
119
|
type: Hash,
|
120
120
|
default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
|
121
121
|
default_value_dynamic: true,
|
@@ -9,6 +9,7 @@ module Fastlane
|
|
9
9
|
jenkins: '--jenkins',
|
10
10
|
buildkite: '--buildkite',
|
11
11
|
teamcity: '--teamcity',
|
12
|
+
github: '--github',
|
12
13
|
|
13
14
|
coveralls: '--coveralls',
|
14
15
|
simple_output: '--simple-output',
|
@@ -155,6 +156,11 @@ module Fastlane
|
|
155
156
|
env_name: "FL_SLATHER_INPUT_FORMAT", # The name of the environment variable
|
156
157
|
description: "The input format that slather should look for",
|
157
158
|
optional: true),
|
159
|
+
FastlaneCore::ConfigItem.new(key: :github,
|
160
|
+
env_name: "FL_SLATHER_GITHUB_ENABLED", # The name of the environment variable
|
161
|
+
description: "Tell slather that it is running on Github Actions",
|
162
|
+
type: Boolean,
|
163
|
+
optional: true),
|
158
164
|
FastlaneCore::ConfigItem.new(key: :buildkite,
|
159
165
|
env_name: "FL_SLATHER_BUILDKITE_ENABLED", # The name of the environment variable
|
160
166
|
description: "Tell slather that it is running on Buildkite",
|
@@ -134,15 +134,17 @@ module Fastlane
|
|
134
134
|
require 'yaml'
|
135
135
|
FileUtils.mkdir_p(target_path)
|
136
136
|
docs_dir = File.join(target_path, "docs")
|
137
|
+
generated_actions_dir = File.join("generated", "actions")
|
138
|
+
FileUtils.mkdir_p(File.join(docs_dir, generated_actions_dir))
|
137
139
|
|
138
140
|
# Generate actions.md
|
139
141
|
template = File.join(Fastlane::ROOT, "lib/assets/Actions.md.erb")
|
140
142
|
result = ERB.new(File.read(template), 0, '-').result(binding) # https://web.archive.org/web/20160430190141/www.rrn.dk/rubys-erb-templating-system
|
141
|
-
File.write(File.join(docs_dir, "actions.md"), result)
|
143
|
+
File.write(File.join(docs_dir, "generated", "actions.md"), result)
|
142
144
|
|
143
|
-
# Generate actions sub pages (e.g. actions/slather.md, actions/scan.md)
|
145
|
+
# Generate actions sub pages (e.g. generated/actions/slather.md, generated/actions/scan.md)
|
144
146
|
all_actions_ref_yml = []
|
145
|
-
FileUtils.mkdir_p(File.join(docs_dir,
|
147
|
+
FileUtils.mkdir_p(File.join(docs_dir, generated_actions_dir))
|
146
148
|
ActionsList.all_actions do |action|
|
147
149
|
@action = action # to provide a reference in the .html.erb template
|
148
150
|
@action_filename = filename_for_action(action)
|
@@ -165,10 +167,14 @@ module Fastlane
|
|
165
167
|
template = File.join(Fastlane::ROOT, "lib/assets/ActionDetails.md.erb")
|
166
168
|
result = ERB.new(File.read(template), 0, '-').result(binding) # https://web.archive.org/web/20160430190141/www.rrn.dk/rubys-erb-templating-system
|
167
169
|
|
168
|
-
|
170
|
+
# Actions get placed in "generated/actions" directory
|
171
|
+
file_name = File.join(generated_actions_dir, "#{action.action_name}.md")
|
169
172
|
File.write(File.join(docs_dir, file_name), result)
|
170
173
|
|
171
|
-
|
174
|
+
# The action pages when published get moved to the "actions" directory
|
175
|
+
# The mkdocs.yml file needs to reference the "actions" directory (not the "generated/actions" directory)
|
176
|
+
published_file_name = File.join("actions", "#{action.action_name}.md")
|
177
|
+
all_actions_ref_yml << { action.action_name => published_file_name }
|
172
178
|
end
|
173
179
|
|
174
180
|
# Modify the mkdocs.yml to list all the actions
|