fastlane 2.192.0 → 2.195.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 +1 -1
- data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +1 -1
- 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 +1 -1
- 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/actions/sync_code_signing.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +3 -1
- data/fastlane/lib/fastlane/actions/zip.rb +2 -2
- 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 +89 -98
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/GymfileProtocol.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/Scanfile.swift +1 -1
- data/fastlane/swift/ScanfileProtocol.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/formatting/Brewfile.lock.json +5 -5
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +25 -6
- 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 +100 -15
- data/pilot/lib/pilot/build_manager.rb +14 -3
- data/pilot/lib/pilot/manager.rb +3 -1
- data/pilot/lib/pilot/options.rb +21 -2
- data/precheck/lib/precheck/options.rb +1 -1
- data/sigh/lib/assets/resign.sh +1 -1
- 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/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/models/build.rb +4 -0
- data/spaceship/lib/spaceship/connect_api/models/build_beta_detail.rb +4 -0
- data/supply/lib/supply/uploader.rb +9 -6
- metadata +22 -25
- data/fastlane/lib/fastlane/actions/crashlytics.rb +0 -207
- data/fastlane/lib/fastlane/helper/crashlytics_helper.rb +0 -157
- data/spaceship/lib/spaceship/connect_api/testflight/.testflight.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: 4cd7eb437e3a1f8298553886732f358e31eef1c3cc91f43d39c8cfa47630962e
|
4
|
+
data.tar.gz: 10e833b578831c678fa5515c12cc9fb18c9668d9296871e487571d92ceedeb53
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bda6c9251396e39f8d88efe075f5684cdd22b6a144732cc472ee711e4b6b192f31a9fb7ec6a387a224d8904e0097596cc13f9cb1006d96d30048f3cba6cd56f
|
7
|
+
data.tar.gz: 7a64bc28296e873afa02ac9af4f6c7d48d1d46c328a84218185b840e761f40cf5154385d390b10e024b8bd66a335a811fe9db0d09be2d1a7516f7c3d23c7d870
|
data/README.md
CHANGED
@@ -35,17 +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/snatchev'>Stefan Natchev</a></h4>
|
43
|
-
</td>
|
44
|
-
<td id='maksym-grebenets'>
|
45
|
-
<a href='https://github.com/mgrebenets'>
|
46
|
-
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
38
|
+
<td id='daniel-jankowski'>
|
39
|
+
<a href='https://github.com/mollyIV'>
|
40
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
47
41
|
</a>
|
48
|
-
<h4 align='center'><a href='https://twitter.com/
|
42
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
49
43
|
</td>
|
50
44
|
<td id='aaron-brager'>
|
51
45
|
<a href='https://github.com/getaaron'>
|
@@ -53,63 +47,101 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
53
47
|
</a>
|
54
48
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
55
49
|
</td>
|
56
|
-
<td id='satoshi-namai'>
|
57
|
-
<a href='https://github.com/ainame'>
|
58
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
59
|
-
</a>
|
60
|
-
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
61
|
-
</td>
|
62
50
|
<td id='jorge-revuelta-h'>
|
63
51
|
<a href='https://github.com/minuscorp'>
|
64
52
|
<img src='https://github.com/minuscorp.png' width='140px;'>
|
65
53
|
</a>
|
66
54
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
67
55
|
</td>
|
56
|
+
<td id='danielle-tomlinson'>
|
57
|
+
<a href='https://github.com/endocrimes'>
|
58
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
59
|
+
</a>
|
60
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
61
|
+
</td>
|
62
|
+
<td id='jimmy-dee'>
|
63
|
+
<a href='https://github.com/jdee'>
|
64
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
65
|
+
</a>
|
66
|
+
<h4 align='center'>Jimmy Dee</h4>
|
67
|
+
</td>
|
68
68
|
</tr>
|
69
69
|
<tr>
|
70
|
+
<td id='max-ott'>
|
71
|
+
<a href='https://github.com/max-ott'>
|
72
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
73
|
+
</a>
|
74
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
75
|
+
</td>
|
76
|
+
<td id='josh-holtz'>
|
77
|
+
<a href='https://github.com/joshdholtz'>
|
78
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
79
|
+
</a>
|
80
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
81
|
+
</td>
|
82
|
+
<td id='felix-krause'>
|
83
|
+
<a href='https://github.com/KrauseFx'>
|
84
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
85
|
+
</a>
|
86
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
87
|
+
</td>
|
70
88
|
<td id='olivier-halligon'>
|
71
89
|
<a href='https://github.com/AliSoftware'>
|
72
90
|
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
73
91
|
</a>
|
74
92
|
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
75
93
|
</td>
|
94
|
+
<td id='stefan-natchev'>
|
95
|
+
<a href='https://github.com/snatchev'>
|
96
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
97
|
+
</a>
|
98
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
99
|
+
</td>
|
100
|
+
</tr>
|
101
|
+
<tr>
|
102
|
+
<td id='matthew-ellis'>
|
103
|
+
<a href='https://github.com/matthewellis'>
|
104
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
105
|
+
</a>
|
106
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
107
|
+
</td>
|
76
108
|
<td id='manu-wallner'>
|
77
109
|
<a href='https://github.com/milch'>
|
78
110
|
<img src='https://github.com/milch.png' width='140px;'>
|
79
111
|
</a>
|
80
112
|
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
81
113
|
</td>
|
114
|
+
<td id='roger-oba'>
|
115
|
+
<a href='https://github.com/rogerluan'>
|
116
|
+
<img src='https://github.com/rogerluan.png' width='140px;'>
|
117
|
+
</a>
|
118
|
+
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
119
|
+
</td>
|
82
120
|
<td id='joshua-liebowitz'>
|
83
121
|
<a href='https://github.com/taquitos'>
|
84
122
|
<img src='https://github.com/taquitos.png' width='140px;'>
|
85
123
|
</a>
|
86
124
|
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
87
125
|
</td>
|
88
|
-
<td id='
|
89
|
-
<a href='https://github.com/
|
90
|
-
<img src='https://github.com/
|
91
|
-
</a>
|
92
|
-
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
93
|
-
</td>
|
94
|
-
<td id='jan-piotrowski'>
|
95
|
-
<a href='https://github.com/janpio'>
|
96
|
-
<img src='https://github.com/janpio.png' width='140px;'>
|
126
|
+
<td id='helmut-januschka'>
|
127
|
+
<a href='https://github.com/hjanuschka'>
|
128
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
97
129
|
</a>
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
130
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
99
131
|
</td>
|
100
132
|
</tr>
|
101
133
|
<tr>
|
102
|
-
<td id='
|
103
|
-
<a href='https://github.com/
|
104
|
-
<img src='https://github.com/
|
134
|
+
<td id='fumiya-nakamura'>
|
135
|
+
<a href='https://github.com/nafu'>
|
136
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
105
137
|
</a>
|
106
|
-
<h4 align='center'><a href='https://twitter.com/
|
138
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
107
139
|
</td>
|
108
|
-
<td id='
|
109
|
-
<a href='https://github.com/
|
110
|
-
<img src='https://github.com/
|
140
|
+
<td id='kohki-miki'>
|
141
|
+
<a href='https://github.com/giginet'>
|
142
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
111
143
|
</a>
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
144
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
113
145
|
</td>
|
114
146
|
<td id='jérôme-lacoste'>
|
115
147
|
<a href='https://github.com/lacostej'>
|
@@ -117,57 +149,31 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
117
149
|
</a>
|
118
150
|
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
119
151
|
</td>
|
120
|
-
<td id='
|
121
|
-
<a href='https://github.com/
|
122
|
-
<img src='https://github.com/
|
152
|
+
<td id='andrew-mcburney'>
|
153
|
+
<a href='https://github.com/armcburney'>
|
154
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
123
155
|
</a>
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
156
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
125
157
|
</td>
|
126
|
-
<td id='
|
127
|
-
<a href='https://github.com/
|
128
|
-
<img src='https://github.com/
|
158
|
+
<td id='luka-mirosevic'>
|
159
|
+
<a href='https://github.com/lmirosevic'>
|
160
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
129
161
|
</a>
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
162
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
131
163
|
</td>
|
132
164
|
</tr>
|
133
165
|
<tr>
|
134
|
-
<td id='danielle-tomlinson'>
|
135
|
-
<a href='https://github.com/endocrimes'>
|
136
|
-
<img src='https://github.com/endocrimes.png' width='140px;'>
|
137
|
-
</a>
|
138
|
-
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
139
|
-
</td>
|
140
|
-
<td id='roger-oba'>
|
141
|
-
<a href='https://github.com/rogerluan'>
|
142
|
-
<img src='https://github.com/rogerluan.png' width='140px;'>
|
143
|
-
</a>
|
144
|
-
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
145
|
-
</td>
|
146
166
|
<td id='iulian-onofrei'>
|
147
167
|
<a href='https://github.com/revolter'>
|
148
168
|
<img src='https://github.com/revolter.png' width='140px;'>
|
149
169
|
</a>
|
150
170
|
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
151
171
|
</td>
|
152
|
-
<td id='
|
153
|
-
<a href='https://github.com/
|
154
|
-
<img src='https://github.com/
|
155
|
-
</a>
|
156
|
-
<h4 align='center'>Jimmy Dee</h4>
|
157
|
-
</td>
|
158
|
-
<td id='felix-krause'>
|
159
|
-
<a href='https://github.com/KrauseFx'>
|
160
|
-
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
161
|
-
</a>
|
162
|
-
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
163
|
-
</td>
|
164
|
-
</tr>
|
165
|
-
<tr>
|
166
|
-
<td id='max-ott'>
|
167
|
-
<a href='https://github.com/max-ott'>
|
168
|
-
<img src='https://github.com/max-ott.png' width='140px;'>
|
172
|
+
<td id='maksym-grebenets'>
|
173
|
+
<a href='https://github.com/mgrebenets'>
|
174
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
169
175
|
</a>
|
170
|
-
<h4 align='center'><a href='https://twitter.com/
|
176
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
171
177
|
</td>
|
172
178
|
<td id='manish-rathi'>
|
173
179
|
<a href='https://github.com/crazymanish'>
|
@@ -175,23 +181,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
175
181
|
</a>
|
176
182
|
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
177
183
|
</td>
|
178
|
-
<td id='
|
179
|
-
<a href='https://github.com/
|
180
|
-
<img src='https://github.com/
|
181
|
-
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
183
|
-
</td>
|
184
|
-
<td id='andrew-mcburney'>
|
185
|
-
<a href='https://github.com/armcburney'>
|
186
|
-
<img src='https://github.com/armcburney.png' width='140px;'>
|
184
|
+
<td id='jan-piotrowski'>
|
185
|
+
<a href='https://github.com/janpio'>
|
186
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
187
187
|
</a>
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
188
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
189
189
|
</td>
|
190
|
-
<td id='
|
191
|
-
<a href='https://github.com/
|
192
|
-
<img src='https://github.com/
|
190
|
+
<td id='satoshi-namai'>
|
191
|
+
<a href='https://github.com/ainame'>
|
192
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
193
193
|
</a>
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
194
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</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,
|
@@ -125,7 +125,7 @@ module Fastlane
|
|
125
125
|
end),
|
126
126
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
127
127
|
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/#
|
128
|
+
description: "Your App Store Connect API Key information (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-hash-option)",
|
129
129
|
type: Hash,
|
130
130
|
default_value: Fastlane::Actions.lane_context[Fastlane::Actions::SharedValues::APP_STORE_CONNECT_API_KEY],
|
131
131
|
default_value_dynamic: true,
|
@@ -64,7 +64,7 @@ module Fastlane
|
|
64
64
|
['SIGH_PROFILE_PATHS', 'Paths in which certificates, key and profile are exported'],
|
65
65
|
['SIGH_UUID', 'UUID (Universally Unique IDentifier) of a provisioning profile'],
|
66
66
|
['SIGH_NAME', 'The name of the profile'],
|
67
|
-
['SIGH_PROFILE_TYPE', 'The profile type, can be
|
67
|
+
['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, developer-id, can be used in `build_app` as a default value for `export_method`']
|
68
68
|
]
|
69
69
|
end
|
70
70
|
|
@@ -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
|
@@ -47,7 +47,7 @@ module Fastlane
|
|
47
47
|
end),
|
48
48
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
49
49
|
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/#
|
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,
|
@@ -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",
|
@@ -82,7 +82,7 @@ module Fastlane
|
|
82
82
|
def self.output
|
83
83
|
[
|
84
84
|
['MATCH_PROVISIONING_PROFILE_MAPPING', 'The match provisioning profile mapping'],
|
85
|
-
['SIGH_PROFILE_TYPE', 'The profile type, can be
|
85
|
+
['SIGH_PROFILE_TYPE', 'The profile type, can be app-store, ad-hoc, development, enterprise, can be used in `build_app` as a default value for `export_method`']
|
86
86
|
]
|
87
87
|
end
|
88
88
|
|
@@ -13,6 +13,8 @@ module Fastlane
|
|
13
13
|
unless distribute_only
|
14
14
|
values[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
|
15
15
|
values[:ipa] = File.expand_path(values[:ipa]) if values[:ipa]
|
16
|
+
values[:pkg] ||= Actions.lane_context[SharedValues::PKG_OUTPUT_PATH]
|
17
|
+
values[:pkg] = File.expand_path(values[:pkg]) if values[:pkg]
|
16
18
|
end
|
17
19
|
|
18
20
|
# Only set :api_key from SharedValues if :api_key_path isn't set (conflicting options)
|
@@ -117,7 +119,7 @@ module Fastlane
|
|
117
119
|
end
|
118
120
|
|
119
121
|
def self.is_supported?(platform)
|
120
|
-
[:ios].include?(platform)
|
122
|
+
[:ios, :mac, :tvos].include?(platform)
|
121
123
|
end
|
122
124
|
end
|
123
125
|
end
|
@@ -10,8 +10,8 @@ module Fastlane
|
|
10
10
|
@verbose = params[:verbose]
|
11
11
|
@password = params[:password]
|
12
12
|
@symlinks = params[:symlinks]
|
13
|
-
@include = params[:include]
|
14
|
-
@exclude = params[:exclude]
|
13
|
+
@include = params[:include] || []
|
14
|
+
@exclude = params[:exclude] || []
|
15
15
|
|
16
16
|
@output_path += ".zip" unless @output_path.end_with?(".zip")
|
17
17
|
end
|
@@ -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
|