fastlane 2.168.0 → 2.173.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +68 -68
- data/cert/lib/cert/options.rb +2 -2
- data/deliver/lib/deliver/app_screenshot.rb +5 -7
- data/deliver/lib/deliver/app_screenshot_validator.rb +108 -0
- data/deliver/lib/deliver/commands_generator.rb +1 -1
- data/deliver/lib/deliver/loader.rb +123 -21
- data/deliver/lib/deliver/setup.rb +8 -3
- data/deliver/lib/deliver/upload_metadata.rb +6 -10
- data/deliver/lib/deliver/upload_screenshots.rb +1 -64
- data/fastlane/lib/fastlane/actions/add_git_tag.rb +12 -3
- data/fastlane/lib/fastlane/actions/artifactory.rb +36 -3
- data/fastlane/lib/fastlane/actions/build_app.rb +3 -1
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +16 -1
- data/fastlane/lib/fastlane/actions/create_xcframework.rb +118 -0
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +4 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +5 -1
- data/fastlane/lib/fastlane/actions/download_app_privacy_details_from_app_store.rb +142 -0
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +0 -1
- data/fastlane/lib/fastlane/actions/git_commit.rb +6 -2
- data/fastlane/lib/fastlane/actions/github_api.rb +14 -3
- data/fastlane/lib/fastlane/actions/nexus_upload.rb +1 -0
- data/fastlane/lib/fastlane/actions/onesignal.rb +13 -3
- data/fastlane/lib/fastlane/actions/pod_push.rb +9 -0
- data/fastlane/lib/fastlane/actions/push_to_git_remote.rb +9 -1
- data/fastlane/lib/fastlane/actions/register_device.rb +1 -1
- data/fastlane/lib/fastlane/actions/register_devices.rb +2 -1
- data/fastlane/lib/fastlane/actions/set_github_release.rb +21 -8
- data/fastlane/lib/fastlane/actions/slack.rb +4 -5
- data/fastlane/lib/fastlane/actions/spm.rb +2 -2
- data/fastlane/lib/fastlane/actions/swiftlint.rb +4 -4
- data/fastlane/lib/fastlane/actions/upload_app_privacy_details_to_app_store.rb +291 -0
- data/fastlane/lib/fastlane/actions/xcode_install.rb +8 -5
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +3 -0
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -1
- data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +3 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +267 -45
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +15 -3
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +2 -2
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +6 -2
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +18 -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 +15 -3
- data/fastlane_core/lib/fastlane_core/helper.rb +2 -2
- data/fastlane_core/lib/fastlane_core/ipa_file_analyser.rb +41 -16
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +3 -4
- data/fastlane_core/lib/fastlane_core/project.rb +19 -6
- data/frameit/lib/frameit/device_types.rb +7 -1
- data/gym/lib/gym/error_handler.rb +8 -0
- data/gym/lib/gym/generators/build_command_generator.rb +3 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +2 -2
- data/gym/lib/gym/options.rb +19 -3
- data/match/lib/match/encryption/openssl.rb +4 -2
- data/match/lib/match/runner.rb +1 -1
- data/match/lib/match/storage/git_storage.rb +14 -10
- data/precheck/lib/precheck/options.rb +6 -1
- data/precheck/lib/precheck/rule_processor.rb +1 -1
- data/precheck/lib/precheck/runner.rb +1 -1
- data/scan/lib/scan/options.rb +22 -1
- data/scan/lib/scan/runner.rb +6 -1
- data/scan/lib/scan/slack_poster.rb +4 -1
- data/scan/lib/scan/test_command_generator.rb +3 -0
- data/screengrab/lib/screengrab/runner.rb +2 -0
- data/sigh/lib/sigh/runner.rb +1 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +6 -2
- data/snapshot/lib/snapshot/options.rb +17 -2
- data/snapshot/lib/snapshot/update.rb +1 -1
- data/spaceship/lib/spaceship/client.rb +28 -1
- data/spaceship/lib/spaceship/connect_api.rb +6 -0
- data/spaceship/lib/spaceship/connect_api/api_client.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/app.rb +19 -4
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage.rb +59 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_category.rb +65 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_data_protection.rb +27 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_grouping.rb +18 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usage_purposes.rb +37 -0
- data/spaceship/lib/spaceship/connect_api/models/app_data_usages_publish_state.rb +36 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info.rb +1 -0
- data/spaceship/lib/spaceship/connect_api/models/app_info_localization.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app_store_version.rb +8 -1
- data/spaceship/lib/spaceship/connect_api/models/beta_group.rb +9 -0
- data/spaceship/lib/spaceship/connect_api/models/device.rb +30 -0
- data/spaceship/lib/spaceship/connect_api/response.rb +3 -1
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +12 -0
- data/spaceship/lib/spaceship/connect_api/tunes/tunes.rb +103 -0
- data/spaceship/lib/spaceship/errors.rb +19 -0
- data/spaceship/lib/spaceship/two_step_or_factor_client.rb +19 -6
- data/spaceship/lib/spaceship/upgrade_2fa_later_client.rb +91 -0
- metadata +44 -23
- data/fastlane/lib/fastlane/actions/.download_dsyms.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.app.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.app_screenshot.rb.swp +0 -0
- data/spaceship/lib/spaceship/connect_api/models/.build.rb.swp +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
// Gymfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
|
|
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.173.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// GymfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
public protocol GymfileProtocol: class {
|
5
5
|
/// Path to the workspace file
|
@@ -41,7 +41,7 @@ public protocol GymfileProtocol: class {
|
|
41
41
|
/// Should the ipa file include bitcode?
|
42
42
|
var includeBitcode: Bool? { get }
|
43
43
|
|
44
|
-
/// Method used to export the archive. Valid values are: app-store, ad-hoc, package, enterprise, development, developer-id
|
44
|
+
/// Method used to export the archive. Valid values are: app-store, validation, ad-hoc, package, enterprise, development, developer-id and mac-application
|
45
45
|
var exportMethod: String? { get }
|
46
46
|
|
47
47
|
/// Path to an export options plist or a hash with export options. Use 'xcodebuild -help' to print the full set of available options
|
@@ -133,6 +133,15 @@ public protocol GymfileProtocol: class {
|
|
133
133
|
|
134
134
|
/// Sets a custom path for Swift Package Manager dependencies
|
135
135
|
var clonedSourcePackagesPath: String? { get }
|
136
|
+
|
137
|
+
/// Skips resolution of Swift Package Manager dependencies
|
138
|
+
var skipPackageDependenciesResolution: Bool { get }
|
139
|
+
|
140
|
+
/// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
|
141
|
+
var disablePackageAutomaticUpdates: Bool { get }
|
142
|
+
|
143
|
+
/// Lets xcodebuild use system's scm configuration
|
144
|
+
var useSystemScm: Bool { get }
|
136
145
|
}
|
137
146
|
|
138
147
|
public extension GymfileProtocol {
|
@@ -180,8 +189,11 @@ public extension GymfileProtocol {
|
|
180
189
|
var xcprettyUtf: Bool? { return nil }
|
181
190
|
var skipProfileDetection: Bool { return false }
|
182
191
|
var clonedSourcePackagesPath: String? { return nil }
|
192
|
+
var skipPackageDependenciesResolution: Bool { return false }
|
193
|
+
var disablePackageAutomaticUpdates: Bool { return false }
|
194
|
+
var useSystemScm: Bool { return false }
|
183
195
|
}
|
184
196
|
|
185
197
|
// Please don't remove the lines below
|
186
198
|
// They are used to detect outdated files
|
187
|
-
// FastlaneRunnerAPIVersion [0.9.
|
199
|
+
// FastlaneRunnerAPIVersion [0.9.59]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Matchfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
|
|
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.173.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// MatchfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
public protocol MatchfileProtocol: class {
|
5
5
|
/// Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution
|
@@ -184,4 +184,4 @@ public extension MatchfileProtocol {
|
|
184
184
|
|
185
185
|
// Please don't remove the lines below
|
186
186
|
// They are used to detect outdated files
|
187
|
-
// FastlaneRunnerAPIVersion [0.9.
|
187
|
+
// FastlaneRunnerAPIVersion [0.9.53]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Precheckfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
|
|
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.173.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// PrecheckfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
public protocol PrecheckfileProtocol: class {
|
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)
|
@@ -29,6 +29,9 @@ public protocol PrecheckfileProtocol: class {
|
|
29
29
|
/// Should check in-app purchases?
|
30
30
|
var includeInAppPurchases: Bool { get }
|
31
31
|
|
32
|
+
/// Should force check live app?
|
33
|
+
var useLive: Bool { get }
|
34
|
+
|
32
35
|
/// using text indicating that your IAP is free
|
33
36
|
var freeStuffInIap: String? { get }
|
34
37
|
}
|
@@ -43,9 +46,10 @@ public extension PrecheckfileProtocol {
|
|
43
46
|
var platform: String { return "ios" }
|
44
47
|
var defaultRuleLevel: String { return "error" }
|
45
48
|
var includeInAppPurchases: Bool { return true }
|
49
|
+
var useLive: Bool { return false }
|
46
50
|
var freeStuffInIap: String? { return nil }
|
47
51
|
}
|
48
52
|
|
49
53
|
// Please don't remove the lines below
|
50
54
|
// They are used to detect outdated files
|
51
|
-
// FastlaneRunnerAPIVersion [0.9.
|
55
|
+
// FastlaneRunnerAPIVersion [0.9.52]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Scanfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
|
|
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.173.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// ScanfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
public protocol ScanfileProtocol: class {
|
5
5
|
/// Path to the workspace file
|
@@ -176,6 +176,9 @@ public protocol ScanfileProtocol: class {
|
|
176
176
|
/// Only post on Slack if the tests fail
|
177
177
|
var slackOnlyOnFailure: Bool { get }
|
178
178
|
|
179
|
+
/// Specifies default payloads to include in Slack messages. For more info visit https://docs.fastlane.tools/actions/slack
|
180
|
+
var slackDefaultPayloads: [String]? { get }
|
181
|
+
|
179
182
|
/// Use only if you're a pro, use the other options instead
|
180
183
|
var destination: String? { get }
|
181
184
|
|
@@ -191,6 +194,15 @@ public protocol ScanfileProtocol: class {
|
|
191
194
|
/// Sets a custom path for Swift Package Manager dependencies
|
192
195
|
var clonedSourcePackagesPath: String? { get }
|
193
196
|
|
197
|
+
/// Skips resolution of Swift Package Manager dependencies
|
198
|
+
var skipPackageDependenciesResolution: Bool { get }
|
199
|
+
|
200
|
+
/// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
|
201
|
+
var disablePackageAutomaticUpdates: Bool { get }
|
202
|
+
|
203
|
+
/// Lets xcodebuild use system's scm configuration
|
204
|
+
var useSystemScm: Bool { get }
|
205
|
+
|
194
206
|
/// Should this step stop the build if the tests fail? Set this to false if you're using trainer
|
195
207
|
var failBuild: Bool { get }
|
196
208
|
}
|
@@ -254,14 +266,18 @@ public extension ScanfileProtocol {
|
|
254
266
|
var slackIconUrl: String { return "https://fastlane.tools/assets/img/fastlane_icon.png" }
|
255
267
|
var skipSlack: Bool { return false }
|
256
268
|
var slackOnlyOnFailure: Bool { return false }
|
269
|
+
var slackDefaultPayloads: [String]? { return nil }
|
257
270
|
var destination: String? { return nil }
|
258
271
|
var catalystPlatform: String? { return nil }
|
259
272
|
var customReportFileName: String? { return nil }
|
260
273
|
var xcodebuildCommand: String { return "env NSUnbufferedIO=YES xcodebuild" }
|
261
274
|
var clonedSourcePackagesPath: String? { return nil }
|
275
|
+
var skipPackageDependenciesResolution: Bool { return false }
|
276
|
+
var disablePackageAutomaticUpdates: Bool { return false }
|
277
|
+
var useSystemScm: Bool { return false }
|
262
278
|
var failBuild: Bool { return true }
|
263
279
|
}
|
264
280
|
|
265
281
|
// Please don't remove the lines below
|
266
282
|
// They are used to detect outdated files
|
267
|
-
// FastlaneRunnerAPIVersion [0.9.
|
283
|
+
// FastlaneRunnerAPIVersion [0.9.64]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Screengrabfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
|
|
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.173.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// ScreengrabfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
public protocol ScreengrabfileProtocol: class {
|
5
5
|
/// Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx
|
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
|
|
96
96
|
|
97
97
|
// Please don't remove the lines below
|
98
98
|
// They are used to detect outdated files
|
99
|
-
// FastlaneRunnerAPIVersion [0.9.
|
99
|
+
// FastlaneRunnerAPIVersion [0.9.54]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Snapshotfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 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.173.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SnapshotfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2021 FastlaneTools
|
3
3
|
|
4
4
|
public protocol SnapshotfileProtocol: class {
|
5
5
|
/// Path the workspace file
|
@@ -50,7 +50,7 @@ public protocol SnapshotfileProtocol: class {
|
|
50
50
|
/// Enabling this option will prevent displaying the simulator window
|
51
51
|
var headless: Bool { get }
|
52
52
|
|
53
|
-
/// Enabling this option
|
53
|
+
/// Enabling this option will automatically override the status bar to show 9:41 AM, full battery, and full reception
|
54
54
|
var overrideStatusBar: Bool { get }
|
55
55
|
|
56
56
|
/// Enabling this option will configure the Simulator's system language
|
@@ -119,6 +119,12 @@ public protocol SnapshotfileProtocol: class {
|
|
119
119
|
/// Sets a custom path for Swift Package Manager dependencies
|
120
120
|
var clonedSourcePackagesPath: String? { get }
|
121
121
|
|
122
|
+
/// Skips resolution of Swift Package Manager dependencies
|
123
|
+
var skipPackageDependenciesResolution: Bool { get }
|
124
|
+
|
125
|
+
/// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file
|
126
|
+
var disablePackageAutomaticUpdates: Bool { get }
|
127
|
+
|
122
128
|
/// The testplan associated with the scheme that should be used for testing
|
123
129
|
var testplan: String? { get }
|
124
130
|
|
@@ -133,6 +139,9 @@ public protocol SnapshotfileProtocol: class {
|
|
133
139
|
|
134
140
|
/// Suppress the output of xcodebuild to stdout. Output is still saved in buildlog_path
|
135
141
|
var suppressXcodeOutput: Bool? { get }
|
142
|
+
|
143
|
+
/// Lets xcodebuild use system's scm configuration
|
144
|
+
var useSystemScm: Bool { get }
|
136
145
|
}
|
137
146
|
|
138
147
|
public extension SnapshotfileProtocol {
|
@@ -175,13 +184,16 @@ public extension SnapshotfileProtocol {
|
|
175
184
|
var concurrentSimulators: Bool { return true }
|
176
185
|
var disableSlideToType: Bool { return false }
|
177
186
|
var clonedSourcePackagesPath: String? { return nil }
|
187
|
+
var skipPackageDependenciesResolution: Bool { return false }
|
188
|
+
var disablePackageAutomaticUpdates: Bool { return false }
|
178
189
|
var testplan: String? { return nil }
|
179
190
|
var onlyTesting: String? { return nil }
|
180
191
|
var skipTesting: String? { return nil }
|
181
192
|
var disableXcpretty: Bool? { return nil }
|
182
193
|
var suppressXcodeOutput: Bool? { return nil }
|
194
|
+
var useSystemScm: Bool { return false }
|
183
195
|
}
|
184
196
|
|
185
197
|
// Please don't remove the lines below
|
186
198
|
// They are used to detect outdated files
|
187
|
-
// FastlaneRunnerAPIVersion [0.9.
|
199
|
+
// FastlaneRunnerAPIVersion [0.9.48]
|
@@ -14,7 +14,7 @@ module FastlaneCore
|
|
14
14
|
|
15
15
|
def self.fastlane_enabled?
|
16
16
|
# This is called from the root context on the first start
|
17
|
-
|
17
|
+
!FastlaneCore::FastlaneFolder.path.nil?
|
18
18
|
end
|
19
19
|
|
20
20
|
# Checks if fastlane is enabled for this project and returns the folder where the configuration lives
|
@@ -74,7 +74,7 @@ module FastlaneCore
|
|
74
74
|
return true if self.is_circle_ci?
|
75
75
|
|
76
76
|
# Check for Jenkins, Travis CI, ... environment variables
|
77
|
-
['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CI', 'APPCENTER_BUILD_ID', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS', 'TF_BUILD', 'GITHUB_ACTION', 'GITHUB_ACTIONS', 'BITRISE_IO'].each do |current|
|
77
|
+
['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CI', 'APPCENTER_BUILD_ID', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS', 'TF_BUILD', 'GITHUB_ACTION', 'GITHUB_ACTIONS', 'BITRISE_IO', 'BUDDY'].each do |current|
|
78
78
|
return true if ENV.key?(current)
|
79
79
|
end
|
80
80
|
return false
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'open3'
|
1
2
|
require 'zip'
|
2
3
|
|
3
4
|
require_relative 'core_ext/cfpropertylist'
|
@@ -37,27 +38,51 @@ module FastlaneCore
|
|
37
38
|
|
38
39
|
def self.fetch_info_plist_file(path)
|
39
40
|
UI.user_error!("Could not find file at path '#{path}'") unless File.exist?(path)
|
40
|
-
|
41
|
-
|
42
|
-
|
41
|
+
plist_data = self.fetch_info_plist_with_rubyzip(path)
|
42
|
+
if plist_data.nil?
|
43
|
+
# Xcode produces invalid zip files for IPAs larger than 4GB. RubyZip
|
44
|
+
# can't read them, but the unzip command is able to work around this.
|
45
|
+
plist_data = self.fetch_info_plist_with_unzip(path)
|
46
|
+
end
|
47
|
+
return nil if plist_data.nil?
|
43
48
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
end
|
49
|
+
# Creates a temporary directory with a unique name tagged with 'fastlane'
|
50
|
+
# The directory is deleted automatically at the end of the block
|
51
|
+
Dir.mktmpdir("fastlane") do |tmp|
|
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
|
57
61
|
end
|
58
62
|
end
|
59
63
|
|
60
64
|
return nil
|
61
65
|
end
|
66
|
+
|
67
|
+
def self.fetch_info_plist_with_rubyzip(path)
|
68
|
+
Zip::File.open(path, "rb") do |zipfile|
|
69
|
+
file = zipfile.glob('**/Payload/*.app/Info.plist').first
|
70
|
+
return nil unless file
|
71
|
+
zipfile.read(file)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def self.fetch_info_plist_with_unzip(path)
|
76
|
+
list, error, = Open3.capture3("unzip", "-Z", "-1", path)
|
77
|
+
UI.command_output(error) unless error.empty?
|
78
|
+
return nil if list.empty?
|
79
|
+
entry = list.chomp.split("\n").find do |e|
|
80
|
+
File.fnmatch("**/Payload/*.app/Info.plist", e, File::FNM_PATHNAME)
|
81
|
+
end
|
82
|
+
data, error, = Open3.capture3("unzip", "-p", path, entry)
|
83
|
+
UI.command_output(error) unless error.empty?
|
84
|
+
return nil if data.empty?
|
85
|
+
data
|
86
|
+
end
|
62
87
|
end
|
63
88
|
end
|
@@ -160,11 +160,10 @@ module FastlaneCore
|
|
160
160
|
end
|
161
161
|
|
162
162
|
deliver_additional_params = env_deliver_additional_params.to_s.strip
|
163
|
-
if
|
164
|
-
UI.
|
165
|
-
else
|
166
|
-
return deliver_additional_params
|
163
|
+
if deliver_additional_params.include?("-t ")
|
164
|
+
UI.important("Apple recommends you don’t specify the -t transport and instead allow Transporter to use automatic transport discovery to determine the best transport mode for your packages. For more information, please read Apple's Transporter User Guide 2.1: https://help.apple.com/itc/transporteruserguide/#/apdATD1E1288-D1E1A1303-D1E1288A1126")
|
167
165
|
end
|
166
|
+
return deliver_additional_params
|
168
167
|
end
|
169
168
|
end
|
170
169
|
|
@@ -275,7 +275,7 @@ module FastlaneCore
|
|
275
275
|
end
|
276
276
|
|
277
277
|
def supports_mac_catalyst?
|
278
|
-
build_settings(key: "SUPPORTS_MACCATALYST") == "YES"
|
278
|
+
build_settings(key: "SUPPORTS_MACCATALYST") == "YES" || build_settings(key: "SUPPORTS_UIKITFORMAC") == "YES"
|
279
279
|
end
|
280
280
|
|
281
281
|
def command_line_tool?
|
@@ -322,11 +322,17 @@ module FastlaneCore
|
|
322
322
|
proj << "-configuration #{options[:configuration].shellescape}" if options[:configuration]
|
323
323
|
proj << "-derivedDataPath #{options[:derived_data_path].shellescape}" if options[:derived_data_path]
|
324
324
|
proj << "-xcconfig #{options[:xcconfig].shellescape}" if options[:xcconfig]
|
325
|
+
proj << "-scmProvider system" if options[:use_system_scm]
|
325
326
|
|
326
|
-
|
327
|
+
xcode_at_least_11 = FastlaneCore::Helper.xcode_at_least?('11.0')
|
328
|
+
if xcode_at_least_11 && options[:cloned_source_packages_path]
|
327
329
|
proj << "-clonedSourcePackagesDirPath #{options[:cloned_source_packages_path].shellescape}"
|
328
330
|
end
|
329
331
|
|
332
|
+
if xcode_at_least_11 && options[:disable_package_automatic_updates]
|
333
|
+
proj << "-disableAutomaticPackageResolution"
|
334
|
+
end
|
335
|
+
|
330
336
|
return proj
|
331
337
|
end
|
332
338
|
|
@@ -350,6 +356,7 @@ module FastlaneCore
|
|
350
356
|
end
|
351
357
|
|
352
358
|
def build_xcodebuild_resolvepackagedependencies_command
|
359
|
+
return nil if options[:skip_package_dependencies_resolution]
|
353
360
|
command = "xcodebuild -resolvePackageDependencies #{xcodebuild_parameters.join(' ')}"
|
354
361
|
command += " 2> /dev/null" if xcodebuild_suppress_stderr
|
355
362
|
command
|
@@ -369,10 +376,16 @@ module FastlaneCore
|
|
369
376
|
|
370
377
|
# SwiftPM support
|
371
378
|
if FastlaneCore::Helper.xcode_at_least?('11.0')
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
379
|
+
if (command = build_xcodebuild_resolvepackagedependencies_command)
|
380
|
+
UI.important("Resolving Swift Package Manager dependencies...")
|
381
|
+
FastlaneCore::CommandExecutor.execute(
|
382
|
+
command: command,
|
383
|
+
print_all: true,
|
384
|
+
print_command: !self.xcodebuild_list_silent
|
385
|
+
)
|
386
|
+
else
|
387
|
+
UI.important("Skipped Swift Package Manager dependencies resolution.")
|
388
|
+
end
|
376
389
|
end
|
377
390
|
|
378
391
|
command = build_xcodebuild_showbuildsettings_command
|