fastlane 2.192.0 → 2.195.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/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
|