fastlane 2.227.0 → 2.232.2
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 +102 -96
- data/bin/fastlane +2 -2
- data/deliver/lib/assets/summary.html.erb +3 -3
- data/deliver/lib/deliver/app_screenshot.rb +215 -347
- data/deliver/lib/deliver/app_screenshot_iterator.rb +4 -1
- data/deliver/lib/deliver/app_screenshot_validator.rb +5 -21
- data/deliver/lib/deliver/loader.rb +2 -9
- data/deliver/lib/deliver/runner.rb +1 -1
- data/deliver/lib/deliver/upload_metadata.rb +5 -0
- data/deliver/lib/deliver/upload_screenshots.rb +4 -2
- data/fastlane/lib/assets/completions/completion.bash +1 -1
- data/fastlane/lib/assets/completions/completion.sh +2 -2
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +19 -14
- data/fastlane/lib/fastlane/actions/appium.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +6 -3
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +11 -7
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +56 -17
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +13 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/import_certificate.rb +9 -1
- data/fastlane/lib/fastlane/actions/increment_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/install_xcode_plugin.rb +3 -2
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/modify_services.rb +1 -0
- data/fastlane/lib/fastlane/actions/notarize.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcov.rb +1 -7
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +19 -1
- data/fastlane/lib/fastlane/console.rb +2 -2
- data/fastlane/lib/fastlane/documentation/markdown_docs_generator.rb +4 -4
- data/fastlane/lib/fastlane/erb_template_helper.rb +1 -7
- data/fastlane/lib/fastlane/helper/s3_client_helper.rb +4 -0
- data/fastlane/lib/fastlane/plugins/template/%gem_name%.gemspec.erb +1 -1
- data/fastlane/lib/fastlane/plugins/template/.github/workflows/test.yml +20 -20
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -1
- data/fastlane/lib/fastlane/version.rb +2 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +13 -5
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/Atomic.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +5 -4
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +265 -68
- data/fastlane/swift/Fastlane.swift +150 -157
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +3 -1
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +227 -54
- data/fastlane/swift/LaneFileProtocol.swift +4 -2
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +226 -59
- 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 +45 -13
- data/fastlane/swift/RubyCommand.swift +6 -7
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +3 -3
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +334 -84
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +89 -24
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +216 -53
- data/fastlane/swift/SocketClient.swift +7 -7
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/formatting/Rakefile +1 -2
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/assets/XMLTemplate.xml.erb +5 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +10 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -1
- data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +5 -1
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +4 -14
- data/fastlane_core/lib/fastlane_core/ipa_upload_package_builder.rb +19 -2
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +143 -106
- data/fastlane_core/lib/fastlane_core/keychain_importer.rb +3 -1
- data/fastlane_core/lib/fastlane_core/project.rb +8 -0
- data/fastlane_core/lib/fastlane_core/provisioning_profile.rb +7 -1
- data/frameit/lib/frameit/device.rb +2 -2
- data/frameit/lib/frameit/device_types.rb +108 -70
- data/frameit/lib/frameit/template_finder.rb +1 -1
- data/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh +1 -0
- data/gym/lib/gym/module.rb +9 -4
- data/gym/lib/gym/options.rb +20 -2
- data/gym/lib/gym/runner.rb +38 -3
- data/match/lib/match/options.rb +1 -0
- data/match/lib/match/storage/s3_storage.rb +4 -7
- data/pilot/lib/pilot/build_manager.rb +7 -1
- data/produce/lib/produce/commands_generator.rb +2 -0
- data/produce/lib/produce/developer_center.rb +1 -0
- data/produce/lib/produce/service.rb +6 -1
- data/scan/lib/scan/error_handler.rb +5 -0
- data/scan/lib/scan/options.rb +13 -3
- data/scan/lib/scan/test_command_generator.rb +10 -2
- data/sigh/lib/assets/resign.sh +6 -3
- data/sigh/lib/sigh/local_manage.rb +6 -4
- data/sigh/lib/sigh/options.rb +1 -0
- data/sigh/lib/sigh/runner.rb +23 -3
- data/snapshot/lib/snapshot/detect_values.rb +1 -1
- data/snapshot/lib/snapshot/options.rb +13 -1
- data/snapshot/lib/snapshot/simulator_launchers/simulator_launcher_base.rb +4 -2
- data/spaceship/lib/spaceship/client.rb +32 -2
- data/spaceship/lib/spaceship/connect_api/models/age_rating_declaration.rb +65 -9
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +4 -4
- data/spaceship/lib/spaceship/connect_api/models/app_screenshot_set.rb +7 -1
- data/spaceship/lib/spaceship/connect_api/models/app_store_version_localization.rb +16 -16
- data/spaceship/lib/spaceship/connect_api/models/build_upload.rb +42 -0
- data/spaceship/lib/spaceship/connect_api/models/bundle_id_capability.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +32 -2
- data/spaceship/lib/spaceship/connect_api/models/device.rb +1 -2
- data/spaceship/lib/spaceship/connect_api/models/profile.rb +2 -3
- data/spaceship/lib/spaceship/connect_api/models/webhook.rb +62 -0
- data/spaceship/lib/spaceship/connect_api/provisioning/provisioning.rb +0 -6
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +9 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +38 -0
- data/spaceship/lib/spaceship/connect_api.rb +2 -0
- data/spaceship/lib/spaceship/errors.rb +8 -6
- data/spaceship/lib/spaceship/portal/key.rb +22 -3
- data/spaceship/lib/spaceship/portal/portal_client.rb +29 -2
- data/spaceship/lib/spaceship/spaceauth_runner.rb +5 -15
- data/supply/lib/supply/client.rb +18 -1
- data/trainer/lib/trainer/legacy_xcresult.rb +1 -1
- data/trainer/lib/trainer/test_parser.rb +1 -1
- data/trainer/lib/trainer/xcresult/helper.rb +11 -1
- metadata +153 -37
- data/fastlane/lib/fastlane/actions/hipchat.rb +0 -200
- data/fastlane/lib/fastlane/core_ext/bundler_monkey_patch.rb +0 -14
- data/fastlane/lib/fastlane/plugins/template/.circleci/config.yml +0 -43
- data/fastlane/lib/fastlane/plugins/template/.travis.yml +0 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// ScreengrabfileProtocol.swift
|
|
2
|
-
// Copyright (c)
|
|
2
|
+
// Copyright (c) 2026 FastlaneTools
|
|
3
3
|
|
|
4
4
|
public protocol ScreengrabfileProtocol: AnyObject {
|
|
5
5
|
/// Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx
|
|
@@ -70,30 +70,95 @@ public protocol ScreengrabfileProtocol: AnyObject {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
public extension ScreengrabfileProtocol {
|
|
73
|
-
var androidHome: String? {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
var
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
var
|
|
94
|
-
|
|
73
|
+
var androidHome: String? {
|
|
74
|
+
return nil
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
var buildToolsVersion: String? {
|
|
78
|
+
return nil
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
var locales: [String] {
|
|
82
|
+
return ["en-US"]
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
var clearPreviousScreenshots: Bool {
|
|
86
|
+
return false
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
var outputDirectory: String {
|
|
90
|
+
return "fastlane/metadata/android"
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
var skipOpenSummary: Bool {
|
|
94
|
+
return false
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
var appPackageName: String {
|
|
98
|
+
return ""
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
var testsPackageName: String? {
|
|
102
|
+
return nil
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
var useTestsInPackages: [String]? {
|
|
106
|
+
return nil
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
var useTestsInClasses: [String]? {
|
|
110
|
+
return nil
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
var launchArguments: [String]? {
|
|
114
|
+
return nil
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
var testInstrumentationRunner: String {
|
|
118
|
+
return "androidx.test.runner.AndroidJUnitRunner"
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
var endingLocale: String {
|
|
122
|
+
return "en-US"
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
var useAdbRoot: Bool {
|
|
126
|
+
return false
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
var appApkPath: String? {
|
|
130
|
+
return nil
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
var testsApkPath: String? {
|
|
134
|
+
return nil
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
var specificDevice: String? {
|
|
138
|
+
return nil
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
var deviceType: String {
|
|
142
|
+
return "phone"
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
var exitOnTestFailure: Bool {
|
|
146
|
+
return true
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
var reinstallApp: Bool {
|
|
150
|
+
return false
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
var useTimestampSuffix: Bool {
|
|
154
|
+
return true
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
var adbHost: String? {
|
|
158
|
+
return nil
|
|
159
|
+
}
|
|
95
160
|
}
|
|
96
161
|
|
|
97
162
|
// Please don't remove the lines below
|
|
98
163
|
// They are used to detect outdated files
|
|
99
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
164
|
+
// FastlaneRunnerAPIVersion [0.9.142]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Snapshotfile.swift
|
|
2
|
-
// Copyright (c)
|
|
2
|
+
// Copyright (c) 2026 FastlaneTools
|
|
3
3
|
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
|
5
5
|
|
|
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
|
|
|
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.232.2
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SnapshotfileProtocol.swift
|
|
2
|
-
// Copyright (c)
|
|
2
|
+
// Copyright (c) 2026 FastlaneTools
|
|
3
3
|
|
|
4
4
|
public protocol SnapshotfileProtocol: AnyObject {
|
|
5
5
|
/// Path to the workspace file
|
|
@@ -119,12 +119,18 @@ public protocol SnapshotfileProtocol: AnyObject {
|
|
|
119
119
|
/// Sets a custom path for Swift Package Manager dependencies
|
|
120
120
|
var clonedSourcePackagesPath: String? { get }
|
|
121
121
|
|
|
122
|
+
/// Sets a custom package cache path for Swift Package Manager dependencies
|
|
123
|
+
var packageCachePath: String? { get }
|
|
124
|
+
|
|
122
125
|
/// Skips resolution of Swift Package Manager dependencies
|
|
123
126
|
var skipPackageDependenciesResolution: Bool { get }
|
|
124
127
|
|
|
125
|
-
/// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
|
|
128
|
+
/// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file. This translates in the option `-disableAutomaticPackageResolution` being passed to xcodebuild
|
|
126
129
|
var disablePackageAutomaticUpdates: Bool { get }
|
|
127
130
|
|
|
131
|
+
/// Skips updating package dependencies from their remote. This translates in the option `-skipPackageUpdates` being passed to xcodebuild
|
|
132
|
+
var skipPackageRepositoryFetches: Bool { get }
|
|
133
|
+
|
|
128
134
|
/// Lets xcodebuild use a specified package authorization provider (keychain|netrc)
|
|
129
135
|
var packageAuthorizationProvider: String? { get }
|
|
130
136
|
|
|
@@ -154,58 +160,215 @@ public protocol SnapshotfileProtocol: AnyObject {
|
|
|
154
160
|
}
|
|
155
161
|
|
|
156
162
|
public extension SnapshotfileProtocol {
|
|
157
|
-
var workspace: String? {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
var
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
var
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
var
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
var
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
var
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
var
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
var
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
var
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
var
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
var
|
|
206
|
-
|
|
163
|
+
var workspace: String? {
|
|
164
|
+
return nil
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
var project: String? {
|
|
168
|
+
return nil
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
var xcargs: String? {
|
|
172
|
+
return nil
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
var xcconfig: String? {
|
|
176
|
+
return nil
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
var devices: [String]? {
|
|
180
|
+
return nil
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
var languages: [String] {
|
|
184
|
+
return ["en-US"]
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
var launchArguments: [String] {
|
|
188
|
+
return [""]
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
var outputDirectory: String {
|
|
192
|
+
return "screenshots"
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
var outputSimulatorLogs: Bool {
|
|
196
|
+
return false
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
var iosVersion: String? {
|
|
200
|
+
return nil
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
var skipOpenSummary: Bool {
|
|
204
|
+
return false
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
var skipHelperVersionCheck: Bool {
|
|
208
|
+
return false
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
var clearPreviousScreenshots: Bool {
|
|
212
|
+
return false
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
var reinstallApp: Bool {
|
|
216
|
+
return false
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
var eraseSimulator: Bool {
|
|
220
|
+
return false
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
var headless: Bool {
|
|
224
|
+
return true
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
var overrideStatusBar: Bool {
|
|
228
|
+
return false
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
var overrideStatusBarArguments: String? {
|
|
232
|
+
return nil
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
var localizeSimulator: Bool {
|
|
236
|
+
return false
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
var darkMode: Bool? {
|
|
240
|
+
return nil
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
var appIdentifier: String? {
|
|
244
|
+
return nil
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
var addPhotos: [String]? {
|
|
248
|
+
return nil
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
var addVideos: [String]? {
|
|
252
|
+
return nil
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
var htmlTemplate: String? {
|
|
256
|
+
return nil
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
var buildlogPath: String {
|
|
260
|
+
return "~/Library/Logs/snapshot"
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
var clean: Bool {
|
|
264
|
+
return false
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
var testWithoutBuilding: Bool? {
|
|
268
|
+
return nil
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
var configuration: String? {
|
|
272
|
+
return nil
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
var sdk: String? {
|
|
276
|
+
return nil
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
var scheme: String? {
|
|
280
|
+
return nil
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
var numberOfRetries: Int {
|
|
284
|
+
return 1
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
var stopAfterFirstError: Bool {
|
|
288
|
+
return false
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
var derivedDataPath: String? {
|
|
292
|
+
return nil
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
var resultBundle: Bool {
|
|
296
|
+
return false
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
var testTargetName: String? {
|
|
300
|
+
return nil
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
var namespaceLogFiles: String? {
|
|
304
|
+
return nil
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
var concurrentSimulators: Bool {
|
|
308
|
+
return true
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
var disableSlideToType: Bool {
|
|
312
|
+
return false
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
var clonedSourcePackagesPath: String? {
|
|
316
|
+
return nil
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
var packageCachePath: String? {
|
|
320
|
+
return nil
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
var skipPackageDependenciesResolution: Bool {
|
|
324
|
+
return false
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
var disablePackageAutomaticUpdates: Bool {
|
|
328
|
+
return false
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
var skipPackageRepositoryFetches: Bool {
|
|
332
|
+
return false
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
var packageAuthorizationProvider: String? {
|
|
336
|
+
return nil
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
var testplan: String? {
|
|
340
|
+
return nil
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
var onlyTesting: String? {
|
|
344
|
+
return nil
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
var skipTesting: String? {
|
|
348
|
+
return nil
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
var xcodebuildFormatter: String {
|
|
352
|
+
return "xcbeautify"
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
var xcprettyArgs: String? {
|
|
356
|
+
return nil
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
var disableXcpretty: Bool? {
|
|
360
|
+
return nil
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
var suppressXcodeOutput: Bool? {
|
|
364
|
+
return nil
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
var useSystemScm: Bool {
|
|
368
|
+
return false
|
|
369
|
+
}
|
|
207
370
|
}
|
|
208
371
|
|
|
209
372
|
// Please don't remove the lines below
|
|
210
373
|
// They are used to detect outdated files
|
|
211
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
374
|
+
// FastlaneRunnerAPIVersion [0.9.136]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// SocketClient.swift
|
|
2
|
-
// Copyright (c)
|
|
2
|
+
// Copyright (c) 2026 FastlaneTools
|
|
3
3
|
|
|
4
4
|
//
|
|
5
5
|
// ** NOTE **
|
|
@@ -51,9 +51,9 @@ class SocketClient: NSObject {
|
|
|
51
51
|
|
|
52
52
|
private(set) weak var socketDelegate: SocketClientDelegateProtocol?
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
private(set) var socketStatus: SocketStatus
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
/// localhost only, this prevents other computers from connecting
|
|
57
57
|
init(host: String = "localhost", port: UInt32 = 2000, commandTimeoutSeconds: Int = defaultCommandTimeoutSeconds, socketDelegate: SocketClientDelegateProtocol) {
|
|
58
58
|
self.host = host
|
|
59
59
|
self.port = port
|
|
@@ -110,13 +110,13 @@ class SocketClient: NSObject {
|
|
|
110
110
|
socketDelegate?.connectionsOpened()
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
func send(rubyCommand: RubyCommandable) {
|
|
114
114
|
verbose(message: "sending: \(rubyCommand.json)")
|
|
115
115
|
send(string: rubyCommand.json)
|
|
116
116
|
writeSemaphore.signal()
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
|
|
119
|
+
func sendComplete() {
|
|
120
120
|
closeSession(sendAbort: true)
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -193,11 +193,11 @@ class SocketClient: NSObject {
|
|
|
193
193
|
socketDelegate?.connectionsClosed()
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
-
|
|
196
|
+
func enter() {
|
|
197
197
|
dispatchGroup.enter()
|
|
198
198
|
}
|
|
199
199
|
|
|
200
|
-
|
|
200
|
+
func leave() {
|
|
201
201
|
readSemaphore.signal()
|
|
202
202
|
writeSemaphore.signal()
|
|
203
203
|
}
|
data/fastlane/swift/main.swift
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<package xmlns="http://apple.com/itunes/importer" version="software5.4">
|
|
3
|
-
<software_assets apple_id="<%= @data[:apple_id] %>" app_platform="<%= @data[:platform] %>"
|
|
3
|
+
<software_assets apple_id="<%= @data[:apple_id] %>" app_platform="<%= @data[:platform] %>"
|
|
4
|
+
<%= %Q[bundle_short_version_string="#{@data[:short_version]}"] if @data&.key?(:short_version) %>
|
|
5
|
+
<%= %Q[bundle_version="#{@data[:bundle_version]}"] if @data&.key?(:bundle_version) %>
|
|
6
|
+
<%= %Q[bundle_identifier="#{@data[:app_identifier]}"] if @data&.key?(:app_identifier) %>
|
|
7
|
+
>
|
|
4
8
|
<asset type="<%= @data[:archive_type] %>">
|
|
5
9
|
<data_file>
|
|
6
10
|
<size><%= @data[:file_size] %></size>
|
|
@@ -30,6 +30,16 @@ WWDRCA_CERTIFICATES = [
|
|
|
30
30
|
alias: 'G6',
|
|
31
31
|
sha256: 'bdd4ed6e74691f0c2bfd01be0296197af1379e0418e2d300efa9c3bef642ca30',
|
|
32
32
|
url: 'https://www.apple.com/certificateauthority/AppleWWDRCAG6.cer'
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
alias: 'DEV-ID-G1',
|
|
36
|
+
sha256: '7afc9d01a62f03a2de9637936d4afe68090d2de18d03f29c88cfb0b1ba63587f',
|
|
37
|
+
url: 'https://www.apple.com/certificateauthority/DeveloperIDCA.cer'
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
alias: 'DEV-ID-G2',
|
|
41
|
+
sha256: 'f16cd3c54c7f83cea4bf1a3e6a0819c8aaa8e4a1528fd144715f350643d2df3a',
|
|
42
|
+
url: 'https://www.apple.com/certificateauthority/DeveloperIDG2CA.cer'
|
|
33
43
|
}
|
|
34
44
|
]
|
|
35
45
|
|
|
@@ -77,8 +77,10 @@ module FastlaneCore
|
|
|
77
77
|
|
|
78
78
|
# Exit status for build command, should be 0 if build succeeded
|
|
79
79
|
if status != 0
|
|
80
|
+
is_output_already_printed = print_all && !suppress_output
|
|
80
81
|
o = output.join("\n")
|
|
81
|
-
puts(o) unless
|
|
82
|
+
puts(o) unless is_output_already_printed
|
|
83
|
+
|
|
82
84
|
UI.error("Exit status: #{status}")
|
|
83
85
|
if error
|
|
84
86
|
error.call(o, status)
|
|
@@ -26,8 +26,10 @@ module FastlaneCore
|
|
|
26
26
|
spawn_with_popen(command, &block)
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
def self.spawn_with_pty(
|
|
29
|
+
def self.spawn_with_pty(original_command, &block)
|
|
30
30
|
require 'pty'
|
|
31
|
+
# this forces the PTY flush - fixes #21792
|
|
32
|
+
command = ENV['FASTLANE_EXEC_FLUSH_PTY_WORKAROUND'] ? "#{original_command};" : original_command
|
|
31
33
|
PTY.spawn(command) do |command_stdout, command_stdin, pid|
|
|
32
34
|
begin
|
|
33
35
|
yield(command_stdout, command_stdin, pid)
|
|
@@ -37,6 +39,8 @@ module FastlaneCore
|
|
|
37
39
|
# This is expected on some linux systems, that indicates that the subcommand finished
|
|
38
40
|
# and we kept trying to read, ignore it
|
|
39
41
|
ensure
|
|
42
|
+
command_stdin.close
|
|
43
|
+
command_stdout.close
|
|
40
44
|
begin
|
|
41
45
|
Process.wait(pid)
|
|
42
46
|
rescue Errno::ECHILD, PTY::ChildExited
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'open3'
|
|
2
|
+
require 'stringio'
|
|
2
3
|
require 'zip'
|
|
3
4
|
|
|
4
5
|
require_relative 'core_ext/cfpropertylist'
|
|
@@ -46,21 +47,10 @@ module FastlaneCore
|
|
|
46
47
|
end
|
|
47
48
|
return nil if plist_data.nil?
|
|
48
49
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
# The XML file has to be properly unpacked first
|
|
53
|
-
tmp_path = File.join(tmp, "Info.plist")
|
|
54
|
-
File.open(tmp_path, 'wb') do |output|
|
|
55
|
-
output.write(plist_data)
|
|
56
|
-
end
|
|
57
|
-
result = CFPropertyList.native_types(CFPropertyList::List.new(file: tmp_path).value)
|
|
58
|
-
|
|
59
|
-
if result['CFBundleIdentifier'] || result['CFBundleVersion']
|
|
60
|
-
return result
|
|
61
|
-
end
|
|
50
|
+
result = CFPropertyList.native_types(CFPropertyList::List.new(data: plist_data).value)
|
|
51
|
+
if result['CFBundleIdentifier'] || result['CFBundleVersion']
|
|
52
|
+
return result
|
|
62
53
|
end
|
|
63
|
-
|
|
64
54
|
return nil
|
|
65
55
|
end
|
|
66
56
|
|
|
@@ -12,7 +12,21 @@ module FastlaneCore
|
|
|
12
12
|
|
|
13
13
|
attr_accessor :package_path
|
|
14
14
|
|
|
15
|
-
def generate(app_id: nil, ipa_path: nil, package_path: nil, platform: nil)
|
|
15
|
+
def generate(app_id: nil, ipa_path: nil, package_path: nil, platform: nil, app_identifier: nil, short_version: nil, bundle_version: nil)
|
|
16
|
+
unless Helper.is_mac?
|
|
17
|
+
# .itmsp packages are not supported for ipa uploads starting Transporter 4.1, for non-macOS
|
|
18
|
+
self.package_path = package_path
|
|
19
|
+
copy_ipa(ipa_path)
|
|
20
|
+
|
|
21
|
+
# copy any AppStoreInfo.plist file that's next to the ipa file
|
|
22
|
+
app_store_info_path = File.join(File.dirname(ipa_path), "AppStoreInfo.plist")
|
|
23
|
+
if File.exist?(app_store_info_path)
|
|
24
|
+
FileUtils.cp(app_store_info_path, File.join(self.package_path, "AppStoreInfo.plist"))
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
return self.package_path
|
|
28
|
+
end
|
|
29
|
+
|
|
16
30
|
self.package_path = File.join(package_path, "#{app_id}-#{SecureRandom.uuid}.itmsp")
|
|
17
31
|
FileUtils.rm_rf(self.package_path) if File.directory?(self.package_path)
|
|
18
32
|
FileUtils.mkdir_p(self.package_path)
|
|
@@ -24,7 +38,10 @@ module FastlaneCore
|
|
|
24
38
|
ipa_path: File.basename(ipa_path), # this is only the base name as the ipa is inside the package
|
|
25
39
|
md5: Digest::MD5.file(ipa_path).hexdigest,
|
|
26
40
|
archive_type: "bundle",
|
|
27
|
-
platform: (platform || "ios") # pass "appletvos" for Apple TV's IPA
|
|
41
|
+
platform: (platform || "ios"), # pass "appletvos" for Apple TV's IPA
|
|
42
|
+
app_identifier: app_identifier,
|
|
43
|
+
short_version: short_version,
|
|
44
|
+
bundle_version: bundle_version
|
|
28
45
|
}
|
|
29
46
|
|
|
30
47
|
xml_path = File.join(FastlaneCore::ROOT, "lib/assets/XMLTemplate.xml.erb")
|