fastlane 2.226.0 → 2.227.1
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 +80 -80
- 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/scan/lib/scan/test_command_generator.rb +2 -2
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/device.rb +1 -2
- 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 +30 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz: '
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '013957876e8538a10eb75b6a6db930df210d73ee8dbbb23fd49f372f491ae93b'
|
4
|
+
data.tar.gz: a87f6c541627a757897bf839d4cc5be2f85c6ea28fba2d3fe780c088c231c72b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e87901816702b534b8f3b62712b87b8ea5a4215a2a7b9cdda8a0ffd4cc0c17faf7dd65b9492e9b3974a712a1d398166874bc0ce3f193d271b2b5f8a6db59b13e
|
7
|
+
data.tar.gz: 9e1a0956bde4a8ae72449d78a92d3acff8fccb05cf428f53d4a78beb670857bf07ce114f4ddd5fcb45eed4a42cda67b74a9c65a6fbd15150393e67ba49c4d8ba
|
data/README.md
CHANGED
@@ -35,11 +35,17 @@ 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/
|
38
|
+
<td id='iulian-onofrei'>
|
39
|
+
<a href='https://github.com/revolter'>
|
40
|
+
<img src='https://github.com/revolter.png' width='140px;'>
|
41
41
|
</a>
|
42
|
-
<h4 align='center'>
|
42
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
43
|
+
</td>
|
44
|
+
<td id='luka-mirosevic'>
|
45
|
+
<a href='https://github.com/lmirosevic'>
|
46
|
+
<img src='https://github.com/lmirosevic.png' width='140px;'>
|
47
|
+
</a>
|
48
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
43
49
|
</td>
|
44
50
|
<td id='stefan-natchev'>
|
45
51
|
<a href='https://github.com/snatchev'>
|
@@ -47,24 +53,18 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
47
53
|
</a>
|
48
54
|
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
49
55
|
</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
56
|
<td id='roger-oba'>
|
63
57
|
<a href='https://github.com/rogerluan'>
|
64
58
|
<img src='https://github.com/rogerluan.png' width='140px;'>
|
65
59
|
</a>
|
66
60
|
<h4 align='center'><a href='https://twitter.com/rogerluan_'>Roger Oba</a></h4>
|
67
61
|
</td>
|
62
|
+
<td id='matthew-ellis'>
|
63
|
+
<a href='https://github.com/matthewellis'>
|
64
|
+
<img src='https://github.com/matthewellis.png' width='140px;'>
|
65
|
+
</a>
|
66
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
67
|
+
</td>
|
68
68
|
</tr>
|
69
69
|
<tr>
|
70
70
|
<td id='satoshi-namai'>
|
@@ -73,37 +73,37 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
73
73
|
</a>
|
74
74
|
<h4 align='center'><a href='https://twitter.com/ainame'>Satoshi Namai</a></h4>
|
75
75
|
</td>
|
76
|
-
<td id='
|
77
|
-
<a href='https://github.com/
|
78
|
-
<img src='https://github.com/
|
76
|
+
<td id='jérôme-lacoste'>
|
77
|
+
<a href='https://github.com/lacostej'>
|
78
|
+
<img src='https://github.com/lacostej.png' width='140px;'>
|
79
79
|
</a>
|
80
|
-
<h4 align='center'><a href='https://twitter.com/
|
80
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
81
81
|
</td>
|
82
|
-
<td id='
|
83
|
-
<a href='https://github.com/
|
84
|
-
<img src='https://github.com/
|
82
|
+
<td id='jimmy-dee'>
|
83
|
+
<a href='https://github.com/jdee'>
|
84
|
+
<img src='https://github.com/jdee.png' width='140px;'>
|
85
85
|
</a>
|
86
|
-
<h4 align='center'
|
86
|
+
<h4 align='center'>Jimmy Dee</h4>
|
87
87
|
</td>
|
88
|
-
<td id='
|
89
|
-
<a href='https://github.com/
|
90
|
-
<img src='https://github.com/
|
88
|
+
<td id='maksym-grebenets'>
|
89
|
+
<a href='https://github.com/mgrebenets'>
|
90
|
+
<img src='https://github.com/mgrebenets.png' width='140px;'>
|
91
91
|
</a>
|
92
|
-
<h4 align='center'><a href='https://twitter.com/
|
92
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
93
93
|
</td>
|
94
|
-
<td id='
|
95
|
-
<a href='https://github.com/
|
96
|
-
<img src='https://github.com/
|
94
|
+
<td id='felix-krause'>
|
95
|
+
<a href='https://github.com/KrauseFx'>
|
96
|
+
<img src='https://github.com/KrauseFx.png' width='140px;'>
|
97
97
|
</a>
|
98
|
-
<h4 align='center'><a href='https://twitter.com/
|
98
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
99
99
|
</td>
|
100
100
|
</tr>
|
101
101
|
<tr>
|
102
|
-
<td id='
|
103
|
-
<a href='https://github.com/
|
104
|
-
<img src='https://github.com/
|
102
|
+
<td id='aaron-brager'>
|
103
|
+
<a href='https://github.com/getaaron'>
|
104
|
+
<img src='https://github.com/getaaron.png' width='140px;'>
|
105
105
|
</a>
|
106
|
-
<h4 align='center'><a href='https://twitter.com/
|
106
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
107
107
|
</td>
|
108
108
|
<td id='kohki-miki'>
|
109
109
|
<a href='https://github.com/giginet'>
|
@@ -111,23 +111,23 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
111
111
|
</a>
|
112
112
|
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
113
113
|
</td>
|
114
|
-
<td id='
|
115
|
-
<a href='https://github.com/
|
116
|
-
<img src='https://github.com/
|
114
|
+
<td id='max-ott'>
|
115
|
+
<a href='https://github.com/max-ott'>
|
116
|
+
<img src='https://github.com/max-ott.png' width='140px;'>
|
117
117
|
</a>
|
118
|
-
<h4 align='center'><a href='https://twitter.com/
|
118
|
+
<h4 align='center'><a href='https://twitter.com/ott_max'>Max Ott</a></h4>
|
119
119
|
</td>
|
120
|
-
<td id='
|
121
|
-
<a href='https://github.com/
|
122
|
-
<img src='https://github.com/
|
120
|
+
<td id='daniel-jankowski'>
|
121
|
+
<a href='https://github.com/mollyIV'>
|
122
|
+
<img src='https://github.com/mollyIV.png' width='140px;'>
|
123
123
|
</a>
|
124
|
-
<h4 align='center'><a href='https://twitter.com/
|
124
|
+
<h4 align='center'><a href='https://twitter.com/mollyIV'>Daniel Jankowski</a></h4>
|
125
125
|
</td>
|
126
|
-
<td id='
|
127
|
-
<a href='https://github.com/
|
128
|
-
<img src='https://github.com/
|
126
|
+
<td id='andrew-mcburney'>
|
127
|
+
<a href='https://github.com/armcburney'>
|
128
|
+
<img src='https://github.com/armcburney.png' width='140px;'>
|
129
129
|
</a>
|
130
|
-
<h4 align='center'><a href='https://twitter.com/
|
130
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
131
131
|
</td>
|
132
132
|
</tr>
|
133
133
|
<tr>
|
@@ -137,17 +137,17 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
137
137
|
</a>
|
138
138
|
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
139
139
|
</td>
|
140
|
-
<td id='
|
141
|
-
<a href='https://github.com/
|
142
|
-
<img src='https://github.com/
|
140
|
+
<td id='łukasz-grabowski'>
|
141
|
+
<a href='https://github.com/lucgrabowski'>
|
142
|
+
<img src='https://github.com/lucgrabowski.png' width='140px;'>
|
143
143
|
</a>
|
144
|
-
<h4 align='center'
|
144
|
+
<h4 align='center'>Łukasz Grabowski</h4>
|
145
145
|
</td>
|
146
|
-
<td id='
|
147
|
-
<a href='https://github.com/
|
148
|
-
<img src='https://github.com/
|
146
|
+
<td id='joshua-liebowitz'>
|
147
|
+
<a href='https://github.com/taquitos'>
|
148
|
+
<img src='https://github.com/taquitos.png' width='140px;'>
|
149
149
|
</a>
|
150
|
-
<h4 align='center'><a href='https://twitter.com/
|
150
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
151
151
|
</td>
|
152
152
|
<td id='jan-piotrowski'>
|
153
153
|
<a href='https://github.com/janpio'>
|
@@ -155,43 +155,43 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
155
155
|
</a>
|
156
156
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
157
157
|
</td>
|
158
|
-
<td id='
|
159
|
-
<a href='https://github.com/
|
160
|
-
<img src='https://github.com/
|
158
|
+
<td id='josh-holtz'>
|
159
|
+
<a href='https://github.com/joshdholtz'>
|
160
|
+
<img src='https://github.com/joshdholtz.png' width='140px;'>
|
161
161
|
</a>
|
162
|
-
<h4 align='center'><a href='https://twitter.com/
|
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='manu-wallner'>
|
167
|
+
<a href='https://github.com/milch'>
|
168
|
+
<img src='https://github.com/milch.png' width='140px;'>
|
169
169
|
</a>
|
170
|
-
<h4 align='center'
|
170
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
171
171
|
</td>
|
172
|
-
<td id='
|
173
|
-
<a href='https://github.com/
|
174
|
-
<img src='https://github.com/
|
172
|
+
<td id='manish-rathi'>
|
173
|
+
<a href='https://github.com/crazymanish'>
|
174
|
+
<img src='https://github.com/crazymanish.png' width='140px;'>
|
175
175
|
</a>
|
176
|
-
<h4 align='center'><a href='https://twitter.com/
|
176
|
+
<h4 align='center'><a href='https://twitter.com/iammanishrathi'>Manish Rathi</a></h4>
|
177
177
|
</td>
|
178
|
-
<td id='
|
179
|
-
<a href='https://github.com/
|
180
|
-
<img src='https://github.com/
|
178
|
+
<td id='olivier-halligon'>
|
179
|
+
<a href='https://github.com/AliSoftware'>
|
180
|
+
<img src='https://github.com/AliSoftware.png' width='140px;'>
|
181
181
|
</a>
|
182
|
-
<h4 align='center'><a href='https://twitter.com/
|
182
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
183
183
|
</td>
|
184
|
-
<td id='
|
185
|
-
<a href='https://github.com/
|
186
|
-
<img src='https://github.com/
|
184
|
+
<td id='jorge-revuelta-h'>
|
185
|
+
<a href='https://github.com/minuscorp'>
|
186
|
+
<img src='https://github.com/minuscorp.png' width='140px;'>
|
187
187
|
</a>
|
188
|
-
<h4 align='center'><a href='https://twitter.com/
|
188
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
189
189
|
</td>
|
190
|
-
<td id='
|
191
|
-
<a href='https://github.com/
|
192
|
-
<img src='https://github.com/
|
190
|
+
<td id='danielle-tomlinson'>
|
191
|
+
<a href='https://github.com/endocrimes'>
|
192
|
+
<img src='https://github.com/endocrimes.png' width='140px;'>
|
193
193
|
</a>
|
194
|
-
<h4 align='center'><a href='https://twitter.com/
|
194
|
+
<h4 align='center'><a href='https://twitter.com/endocrimes'>Danielle Tomlinson</a></h4>
|
195
195
|
</td>
|
196
196
|
</tr>
|
197
197
|
<tr>
|
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.1'.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.1
|
@@ -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.134]
|