fastlane 2.226.0 → 2.227.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 +96 -96
- data/cert/lib/cert/options.rb +7 -2
- data/cert/lib/cert/runner.rb +23 -11
- 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/docs/sync_code_signing.md +1 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/notarize.rb +4 -0
- data/fastlane/lib/fastlane/actions/onesignal.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_ci.rb +14 -4
- data/fastlane/lib/fastlane/actions/testfairy.rb +5 -2
- data/fastlane/lib/fastlane/actions/unlock_keychain.rb +6 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/Atomic.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +20 -10
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +2 -2
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +2 -2
- data/fastlane/swift/OptionalConfigValue.swift +1 -1
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +1 -1
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +2 -2
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/SocketClient.swift +1 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +6 -1
- data/match/lib/assets/READMETemplate.md +2 -2
- data/match/lib/match/generator.rb +2 -2
- data/match/lib/match/runner.rb +1 -1
- data/precheck/lib/precheck/options.rb +1 -1
- data/produce/lib/produce/options.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -0
- data/supply/lib/supply/uploader.rb +19 -12
- data/trainer/lib/trainer/legacy_xcresult.rb +586 -0
- data/trainer/lib/trainer/options.rb +5 -0
- data/trainer/lib/trainer/plist_test_summary_parser.rb +84 -0
- data/trainer/lib/trainer/test_parser.rb +12 -293
- data/trainer/lib/trainer/xcresult/helper.rb +53 -0
- data/trainer/lib/trainer/xcresult/repetition.rb +39 -0
- data/trainer/lib/trainer/xcresult/test_case.rb +221 -0
- data/trainer/lib/trainer/xcresult/test_case_attributes.rb +49 -0
- data/trainer/lib/trainer/xcresult/test_plan.rb +91 -0
- data/trainer/lib/trainer/xcresult/test_suite.rb +134 -0
- data/trainer/lib/trainer/xcresult.rb +31 -388
- data/trainer/lib/trainer.rb +3 -1
- metadata +29 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd8ce422d952c22cd384e6459133d3d668178a6237168e59c2902f3e0b35fcbe
|
4
|
+
data.tar.gz: 55220418b3abab5621d41ab450f870b588f30cf566e01f71b7e4c993abc60c06
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d10309c76cd22469932971ad8372617ccd997e5c21b53af5ed871ba58029f75ba362ca2ff61573ec44cf5e10e19bd7b34743a955c438a7a9dbd286aa5f599865
|
7
|
+
data.tar.gz: 7da6fcdff81271b64632d11e8da1f7937249061776263b72244c925c27060d4022842953a8e78b7435e7df11ed78f34c1935b058da3dbc973ba3389e797e5973
|
data/README.md
CHANGED
@@ -35,87 +35,49 @@ 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='jimmy-dee'>
|
39
|
-
<a href='https://github.com/jdee'>
|
40
|
-
<img src='https://github.com/jdee.png' width='140px;'>
|
41
|
-
</a>
|
42
|
-
<h4 align='center'>Jimmy Dee</h4>
|
43
|
-
</td>
|
44
|
-
<td id='stefan-natchev'>
|
45
|
-
<a href='https://github.com/snatchev'>
|
46
|
-
<img src='https://github.com/snatchev.png' width='140px;'>
|
47
|
-
</a>
|
48
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
49
|
-
</td>
|
50
|
-
<td id='josh-holtz'>
|
51
|
-
<a href='https://github.com/joshdholtz'>
|
52
|
-
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
53
|
-
</a>
|
54
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
55
|
-
</td>
|
56
|
-
<td id='joshua-liebowitz'>
|
57
|
-
<a href='https://github.com/taquitos'>
|
58
|
-
<img src='https://github.com/taquitos.png' width='140px;'>
|
59
|
-
</a>
|
60
|
-
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
61
|
-
</td>
|
62
38
|
<td id='roger-oba'>
|
63
39
|
<a href='https://github.com/rogerluan'>
|
64
40
|
<img src='https://github.com/rogerluan.png' width='140px;'>
|
65
41
|
</a>
|
66
42
|
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
67
43
|
</td>
|
68
|
-
</tr>
|
69
|
-
<tr>
|
70
|
-
<td id='satoshi-namai'>
|
71
|
-
<a href='https://github.com/ainame'>
|
72
|
-
<img src='https://github.com/ainame.png' width='140px;'>
|
73
|
-
</a>
|
74
|
-
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
75
|
-
</td>
|
76
|
-
<td id='daniel-jankowski'>
|
77
|
-
<a href='https://github.com/mollyIV'>
|
78
|
-
<img src='https://github.com/mollyIV.png' width='140px;'>
|
79
|
-
</a>
|
80
|
-
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
81
|
-
</td>
|
82
44
|
<td id='aaron-brager'>
|
83
45
|
<a href='https://github.com/getaaron'>
|
84
46
|
<img src='https://github.com/getaaron.png' width='140px;'>
|
85
47
|
</a>
|
86
48
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
87
49
|
</td>
|
88
|
-
<td id='
|
89
|
-
<a href='https://github.com/
|
90
|
-
<img src='https://github.com/
|
50
|
+
<td id='iulian-onofrei'>
|
51
|
+
<a href='https://github.com/revolter'>
|
52
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
91
53
|
</a>
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
54
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
93
55
|
</td>
|
94
|
-
<td id='
|
95
|
-
<a href='https://github.com/
|
96
|
-
<img src='https://github.com/
|
56
|
+
<td id='stefan-natchev'>
|
57
|
+
<a href='https://github.com/snatchev'>
|
58
|
+
<img src='https://github.com/snatchev.png' width='140px;'>
|
97
59
|
</a>
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
60
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
99
61
|
</td>
|
100
|
-
|
101
|
-
<
|
102
|
-
<
|
103
|
-
<a href='https://github.com/endocrimes'>
|
104
|
-
<img src='https://github.com/endocrimes.png' width='140px;'>
|
62
|
+
<td id='jimmy-dee'>
|
63
|
+
<a href='https://github.com/jdee'>
|
64
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
105
65
|
</a>
|
106
|
-
<h4 align='center'
|
66
|
+
<h4 align='center'>Jimmy Dee</h4>
|
107
67
|
</td>
|
108
|
-
|
109
|
-
<
|
110
|
-
<
|
68
|
+
</tr>
|
69
|
+
<tr>
|
70
|
+
<td id='manish-rathi'>
|
71
|
+
<a href='https://github.com/crazymanish'>
|
72
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
111
73
|
</a>
|
112
|
-
<h4 align='center'><a href='https://twitter.com/
|
74
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
113
75
|
</td>
|
114
|
-
<td id='
|
115
|
-
<a href='https://github.com/
|
116
|
-
<img src='https://github.com/
|
76
|
+
<td id='fumiya-nakamura'>
|
77
|
+
<a href='https://github.com/nafu'>
|
78
|
+
<img src='https://github.com/nafu.png' width='140px;'>
|
117
79
|
</a>
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
80
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
119
81
|
</td>
|
120
82
|
<td id='luka-mirosevic'>
|
121
83
|
<a href='https://github.com/lmirosevic'>
|
@@ -129,13 +91,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
129
91
|
</a>
|
130
92
|
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
131
93
|
</td>
|
94
|
+
<td id='jan-piotrowski'>
|
95
|
+
<a href='https://github.com/janpio'>
|
96
|
+
<img src='https://github.com/janpio.png' width='140px;'>
|
97
|
+
</a>
|
98
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
99
|
+
</td>
|
132
100
|
</tr>
|
133
101
|
<tr>
|
134
|
-
<td id='
|
135
|
-
<a href='https://github.com/
|
136
|
-
<img src='https://github.com/
|
102
|
+
<td id='jérôme-lacoste'>
|
103
|
+
<a href='https://github.com/lacostej'>
|
104
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
137
105
|
</a>
|
138
|
-
<h4 align='center'><a href='https://twitter.com/
|
106
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
107
|
+
</td>
|
108
|
+
<td id='łukasz-grabowski'>
|
109
|
+
<a href='https://github.com/lucgrabowski'>
|
110
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
111
|
+
</a>
|
112
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
113
|
+
</td>
|
114
|
+
<td id='satoshi-namai'>
|
115
|
+
<a href='https://github.com/ainame'>
|
116
|
+
<img src='https://github.com/ainame.png' width='140px;'>
|
117
|
+
</a>
|
118
|
+
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
119
|
+
</td>
|
120
|
+
<td id='kohki-miki'>
|
121
|
+
<a href='https://github.com/giginet'>
|
122
|
+
<img src='https://github.com/giginet.png' width='140px;'>
|
123
|
+
</a>
|
124
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
139
125
|
</td>
|
140
126
|
<td id='max-ott'>
|
141
127
|
<a href='https://github.com/max-ott'>
|
@@ -143,63 +129,77 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
143
129
|
</a>
|
144
130
|
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
145
131
|
</td>
|
132
|
+
</tr>
|
133
|
+
<tr>
|
146
134
|
<td id='jorge-revuelta-h'>
|
147
135
|
<a href='https://github.com/minuscorp'>
|
148
136
|
<img src='https://github.com/minuscorp.png' width='140px;'>
|
149
137
|
</a>
|
150
138
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
151
139
|
</td>
|
152
|
-
<td id='
|
153
|
-
<a href='https://github.com/
|
154
|
-
<img src='https://github.com/
|
140
|
+
<td id='maksym-grebenets'>
|
141
|
+
<a href='https://github.com/mgrebenets'>
|
142
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
155
143
|
</a>
|
156
|
-
<h4 align='center'><a href='https://twitter.com/
|
144
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
157
145
|
</td>
|
158
|
-
<td id='
|
159
|
-
<a href='https://github.com/
|
160
|
-
<img src='https://github.com/
|
146
|
+
<td id='matthew-ellis'>
|
147
|
+
<a href='https://github.com/matthewellis'>
|
148
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
161
149
|
</a>
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
150
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
151
|
+
</td>
|
152
|
+
<td id='joshua-liebowitz'>
|
153
|
+
<a href='https://github.com/taquitos'>
|
154
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
155
|
+
</a>
|
156
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
157
|
+
</td>
|
158
|
+
<td id='josh-holtz'>
|
159
|
+
<a href='https://github.com/joshdholtz'>
|
160
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
161
|
+
</a>
|
162
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
163
163
|
</td>
|
164
164
|
</tr>
|
165
165
|
<tr>
|
166
|
-
<td id='
|
167
|
-
<a href='https://github.com/
|
168
|
-
<img src='https://github.com/
|
166
|
+
<td id='danielle-tomlinson'>
|
167
|
+
<a href='https://github.com/endocrimes'>
|
168
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
169
169
|
</a>
|
170
|
-
<h4 align='center'
|
170
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
171
171
|
</td>
|
172
|
-
<td id='
|
173
|
-
<a href='https://github.com/
|
174
|
-
<img src='https://github.com/
|
172
|
+
<td id='andrew-mcburney'>
|
173
|
+
<a href='https://github.com/armcburney'>
|
174
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
175
175
|
</a>
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
176
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
177
177
|
</td>
|
178
|
-
<td id='
|
179
|
-
<a href='https://github.com/
|
180
|
-
<img src='https://github.com/
|
178
|
+
<td id='daniel-jankowski'>
|
179
|
+
<a href='https://github.com/mollyIV'>
|
180
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
181
181
|
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
182
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
183
183
|
</td>
|
184
|
-
<td id='
|
185
|
-
<a href='https://github.com/
|
186
|
-
<img src='https://github.com/
|
184
|
+
<td id='helmut-januschka'>
|
185
|
+
<a href='https://github.com/hjanuschka'>
|
186
|
+
<img src='https://github.com/hjanuschka.png' width='140px;'>
|
187
187
|
</a>
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
188
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
189
189
|
</td>
|
190
|
-
<td id='
|
191
|
-
<a href='https://github.com/
|
192
|
-
<img src='https://github.com/
|
190
|
+
<td id='olivier-halligon'>
|
191
|
+
<a href='https://github.com/AliSoftware'>
|
192
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
193
193
|
</a>
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
194
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
195
195
|
</td>
|
196
196
|
</tr>
|
197
197
|
<tr>
|
198
|
-
<td id='
|
199
|
-
<a href='https://github.com/
|
200
|
-
<img src='https://github.com/
|
198
|
+
<td id='manu-wallner'>
|
199
|
+
<a href='https://github.com/milch'>
|
200
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
201
201
|
</a>
|
202
|
-
<h4 align='center'><a href='https://twitter.com/
|
202
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
203
203
|
</td>
|
204
204
|
</table>
|
205
205
|
|
data/cert/lib/cert/options.rb
CHANGED
@@ -100,9 +100,11 @@ module Cert
|
|
100
100
|
env_name: "CERT_KEYCHAIN_PATH",
|
101
101
|
description: "Path to a custom keychain",
|
102
102
|
code_gen_sensitive: true,
|
103
|
-
default_value: Dir["#{Dir.home}/Library/Keychains/login.keychain", "#{Dir.home}/Library/Keychains/login.keychain-db"].last,
|
103
|
+
default_value: Helper.mac? ? Dir["#{Dir.home}/Library/Keychains/login.keychain", "#{Dir.home}/Library/Keychains/login.keychain-db"].last : nil,
|
104
104
|
default_value_dynamic: true,
|
105
|
+
optional: true,
|
105
106
|
verify_block: proc do |value|
|
107
|
+
UI.user_error!("Keychain is not supported on platforms other than macOS") if !Helper.mac? && value
|
106
108
|
value = File.expand_path(value)
|
107
109
|
UI.user_error!("Keychain not found at path '#{value}'") unless File.exist?(value)
|
108
110
|
end),
|
@@ -111,7 +113,10 @@ module Cert
|
|
111
113
|
env_name: "CERT_KEYCHAIN_PASSWORD",
|
112
114
|
sensitive: true,
|
113
115
|
description: "This might be required the first time you access certificates on a new mac. For the login/default keychain this is your macOS account password",
|
114
|
-
optional: true
|
116
|
+
optional: true,
|
117
|
+
verify_block: proc do |value|
|
118
|
+
UI.user_error!("Keychain is not supported on platforms other than macOS") unless Helper.mac?
|
119
|
+
end),
|
115
120
|
FastlaneCore::ConfigItem.new(key: :skip_set_partition_list,
|
116
121
|
short_option: "-P",
|
117
122
|
env_name: "CERT_SKIP_SET_PARTITION_LIST",
|
data/cert/lib/cert/runner.rb
CHANGED
@@ -12,10 +12,14 @@ module Cert
|
|
12
12
|
def launch
|
13
13
|
run
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
if Helper.mac?
|
16
|
+
UI.message("Verifying the certificate is properly installed locally...")
|
17
|
+
installed = FastlaneCore::CertChecker.installed?(ENV["CER_FILE_PATH"], in_keychain: ENV["CER_KEYCHAIN_PATH"])
|
18
|
+
UI.user_error!("Could not find the newly generated certificate installed", show_github_issues: true) unless installed
|
19
|
+
UI.success("Successfully installed certificate #{ENV['CER_CERTIFICATE_ID']}")
|
20
|
+
else
|
21
|
+
UI.message("Skipping verifying certificates as it would not work on this operating system.")
|
22
|
+
end
|
19
23
|
return ENV["CER_FILE_PATH"]
|
20
24
|
end
|
21
25
|
|
@@ -45,7 +49,7 @@ module Cert
|
|
45
49
|
|
46
50
|
should_create = Cert.config[:force]
|
47
51
|
unless should_create
|
48
|
-
cert_path = find_existing_cert
|
52
|
+
cert_path = find_existing_cert if Helper.mac?
|
49
53
|
should_create = cert_path.nil?
|
50
54
|
end
|
51
55
|
|
@@ -223,17 +227,25 @@ module Cert
|
|
223
227
|
|
224
228
|
cert_path = store_certificate(certificate, Cert.config[:filename])
|
225
229
|
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
230
|
+
if Helper.mac?
|
231
|
+
# Import all the things into the Keychain
|
232
|
+
keychain = File.expand_path(Cert.config[:keychain_path])
|
233
|
+
password = Cert.config[:keychain_password]
|
234
|
+
FastlaneCore::KeychainImporter.import_file(private_key_path, keychain, keychain_password: password, skip_set_partition_list: Cert.config[:skip_set_partition_list])
|
235
|
+
FastlaneCore::KeychainImporter.import_file(cert_path, keychain, keychain_password: password, skip_set_partition_list: Cert.config[:skip_set_partition_list])
|
236
|
+
else
|
237
|
+
UI.message("Skipping importing certificates as it would not work on this operating system.")
|
238
|
+
end
|
231
239
|
|
232
240
|
# Environment variables for the fastlane action
|
233
241
|
ENV["CER_CERTIFICATE_ID"] = certificate.id
|
234
242
|
ENV["CER_FILE_PATH"] = cert_path
|
235
243
|
|
236
|
-
|
244
|
+
if Helper.mac?
|
245
|
+
UI.success("Successfully generated #{certificate.id} which was imported to the local machine.")
|
246
|
+
else
|
247
|
+
UI.success("Successfully generated #{certificate.id}")
|
248
|
+
end
|
237
249
|
|
238
250
|
return cert_path
|
239
251
|
end
|
@@ -99,7 +99,7 @@ module Deliver
|
|
99
99
|
optional: true,
|
100
100
|
default_value: "ios",
|
101
101
|
verify_block: proc do |value|
|
102
|
-
UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %w(ios appletvos xros osx).include?(value)
|
102
|
+
UI.user_error!("The platform can only be ios, appletvos/tvos, xros or osx") unless %w(ios appletvos tvos xros osx).include?(value)
|
103
103
|
end),
|
104
104
|
|
105
105
|
# live version
|
@@ -186,7 +186,7 @@ module Fastlane
|
|
186
186
|
optional: true,
|
187
187
|
default_value: "ios",
|
188
188
|
verify_block: proc do |value|
|
189
|
-
UI.user_error!("The platform can only be ios, appletvos, xros or osx") unless %w(ios appletvos xros osx).include?(value)
|
189
|
+
UI.user_error!("The platform can only be ios, appletvos/tvos, xros or osx") unless %w(ios appletvos tvos xros osx).include?(value)
|
190
190
|
end),
|
191
191
|
FastlaneCore::ConfigItem.new(key: :team_name,
|
192
192
|
short_option: "-e",
|
@@ -564,7 +564,7 @@ What's the worst that could happen for each of the profile types?
|
|
564
564
|
|
565
565
|
#### App Store Profiles
|
566
566
|
|
567
|
-
An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days
|
567
|
+
An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days. Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage.
|
568
568
|
|
569
569
|
#### Development and Ad Hoc Profiles
|
570
570
|
|
@@ -83,7 +83,7 @@ module Fastlane
|
|
83
83
|
optional: true,
|
84
84
|
default_value: "ios",
|
85
85
|
verify_block: proc do |value|
|
86
|
-
UI.user_error!("The platform can only be ios, osx, xros or appletvos") unless %w(osx
|
86
|
+
UI.user_error!("The platform can only be ios, osx, xros or appletvos/tvos") unless %w(ios osx xros appletvos tvos).include?(value)
|
87
87
|
end),
|
88
88
|
FastlaneCore::ConfigItem.new(key: :initial_build_number,
|
89
89
|
env_name: "INITIAL_BUILD_NUMBER",
|
@@ -53,7 +53,7 @@ module Fastlane
|
|
53
53
|
payload["organization_id"] = organization_id unless organization_id.nil?
|
54
54
|
|
55
55
|
# here's the actual lifting - POST or PUT to OneSignal
|
56
|
-
json_headers = { 'Content-Type' => 'application/json', 'Authorization' => "
|
56
|
+
json_headers = { 'Content-Type' => 'application/json', 'Authorization' => "Key #{auth_token}" }
|
57
57
|
url = +'https://api.onesignal.com/apps'
|
58
58
|
url << '/' + app_id if is_update
|
59
59
|
uri = URI.parse(url)
|
@@ -8,7 +8,7 @@ module Fastlane
|
|
8
8
|
end
|
9
9
|
|
10
10
|
case detect_provider(params)
|
11
|
-
when 'circleci'
|
11
|
+
when 'circleci', 'codebuild'
|
12
12
|
setup_output_paths
|
13
13
|
end
|
14
14
|
|
@@ -20,7 +20,7 @@ module Fastlane
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.detect_provider(params)
|
23
|
-
params[:provider] || (Helper.is_circle_ci? ? 'circleci' : nil)
|
23
|
+
params[:provider] || (Helper.is_circle_ci? ? 'circleci' : nil) || (Helper.is_codebuild? ? 'codebuild' : nil)
|
24
24
|
end
|
25
25
|
|
26
26
|
def self.setup_keychain(params)
|
@@ -34,7 +34,7 @@ module Fastlane
|
|
34
34
|
return
|
35
35
|
end
|
36
36
|
|
37
|
-
keychain_name =
|
37
|
+
keychain_name = params[:keychain_name]
|
38
38
|
ENV["MATCH_KEYCHAIN_NAME"] = keychain_name
|
39
39
|
ENV["MATCH_KEYCHAIN_PASSWORD"] = ""
|
40
40
|
|
@@ -108,7 +108,12 @@ module Fastlane
|
|
108
108
|
env_name: "FL_SETUP_CI_TIMEOUT",
|
109
109
|
description: "Set a custom timeout in seconds for keychain. Set `0` if you want to specify 'no time-out'",
|
110
110
|
type: Integer,
|
111
|
-
default_value: 3600)
|
111
|
+
default_value: 3600),
|
112
|
+
FastlaneCore::ConfigItem.new(key: :keychain_name,
|
113
|
+
env_name: "FL_SETUP_CI_KEYCHAIN_NAME",
|
114
|
+
description: "Set a custom keychain name",
|
115
|
+
type: String,
|
116
|
+
default_value: "fastlane_tmp_keychain")
|
112
117
|
]
|
113
118
|
end
|
114
119
|
|
@@ -128,6 +133,11 @@ module Fastlane
|
|
128
133
|
'setup_ci(
|
129
134
|
provider: "circleci",
|
130
135
|
timeout: 0
|
136
|
+
)',
|
137
|
+
'setup_ci(
|
138
|
+
provider: "circleci",
|
139
|
+
timeout: 0,
|
140
|
+
keychain_name: "custom_keychain_name"
|
131
141
|
)'
|
132
142
|
]
|
133
143
|
end
|
@@ -151,11 +151,14 @@ module Fastlane
|
|
151
151
|
private_class_method :parse_response
|
152
152
|
|
153
153
|
def self.description
|
154
|
-
'Upload a new build to
|
154
|
+
'Upload a new build to SauceLabs\' TestFairy'
|
155
155
|
end
|
156
156
|
|
157
157
|
def self.details
|
158
|
-
|
158
|
+
<<~DETAILS
|
159
|
+
Upload a new build to [TestFairy](https://saucelabs.com/products/mobile-testing/app-betas).
|
160
|
+
You can retrieve your API key on [your settings page](https://app.testfairy.com/settings/access-key)
|
161
|
+
DETAILS
|
159
162
|
end
|
160
163
|
|
161
164
|
def self.available_options
|
@@ -42,7 +42,12 @@ module Fastlane
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def self.replace_keychain_in_search_list(keychain_path)
|
45
|
-
|
45
|
+
begin
|
46
|
+
UI.message("Reading existing default keychain")
|
47
|
+
Actions.lane_context[Actions::SharedValues::ORIGINAL_DEFAULT_KEYCHAIN] = Fastlane::Actions.sh("security default-keychain").strip
|
48
|
+
rescue => e
|
49
|
+
raise unless e.message.include?("security: SecKeychainCopyDefault: A default keychain could not be found.")
|
50
|
+
end
|
46
51
|
escaped_path = keychain_path.shellescape
|
47
52
|
Fastlane::Actions.sh("security list-keychains -s #{escaped_path}", log: false)
|
48
53
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.
|
2
|
+
VERSION = '2.227.0'.freeze
|
3
3
|
SUMMARY = "The easiest way to build and release mobile apps.".freeze
|
4
4
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
5
5
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
data/fastlane/swift/Atomic.swift
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Deliverfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Deliverfile: DeliverfileProtocol {
|
|
17
17
|
// during the `init` process, and you won't see this message
|
18
18
|
}
|
19
19
|
|
20
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// DeliverfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol DeliverfileProtocol: AnyObject {
|
5
5
|
/// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
|
@@ -272,4 +272,4 @@ public extension DeliverfileProtocol {
|
|
272
272
|
|
273
273
|
// Please don't remove the lines below
|
274
274
|
// They are used to detect outdated files
|
275
|
-
// FastlaneRunnerAPIVersion [0.9.
|
275
|
+
// FastlaneRunnerAPIVersion [0.9.133]
|