fastlane 2.225.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 +98 -98
- 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/import_from_git.rb +11 -4
- 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/register_device.rb +1 -1
- data/fastlane/lib/fastlane/actions/register_devices.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_ci.rb +14 -4
- data/fastlane/lib/fastlane/actions/testfairy.rb +41 -4
- data/fastlane/lib/fastlane/actions/unlock_keychain.rb +6 -1
- data/fastlane/lib/fastlane/fast_file.rb +9 -6
- 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 +39 -13
- 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 +22 -11
- 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 +31 -23
@@ -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
|
@@ -278,7 +278,8 @@ module Fastlane
|
|
278
278
|
# @param version [String, Array] Version requirement for repo tags
|
279
279
|
# @param dependencies [Array] An optional array of additional Fastfiles in the repository
|
280
280
|
# @param cache_path [String] An optional path to a directory where the repository should be cloned into
|
281
|
-
|
281
|
+
# @param git_extra_headers [Array] An optional array of custom HTTP headers to access the git repo (`Authorization: Basic <YOUR BASE64 KEY>`, `Cache-Control: no-cache`, etc.)
|
282
|
+
def import_from_git(url: nil, branch: 'HEAD', path: 'fastlane/Fastfile', version: nil, dependencies: [], cache_path: nil, git_extra_headers: []) # rubocop:disable Metrics/PerceivedComplexity
|
282
283
|
UI.user_error!("Please pass a path to the `import_from_git` action") if url.to_s.length == 0
|
283
284
|
|
284
285
|
Actions.execute_action('import_from_git') do
|
@@ -297,8 +298,6 @@ module Fastlane
|
|
297
298
|
import_block = proc do |target_path|
|
298
299
|
clone_folder = File.join(target_path, repo_name)
|
299
300
|
|
300
|
-
branch_option = "--branch #{branch}" if branch != 'HEAD'
|
301
|
-
|
302
301
|
checkout_dependencies = dependencies.map(&:shellescape).join(" ")
|
303
302
|
|
304
303
|
# If the current call is eligible for caching, we check out all the
|
@@ -309,12 +308,16 @@ module Fastlane
|
|
309
308
|
if Dir[clone_folder].empty?
|
310
309
|
UI.message("Cloning remote git repo...")
|
311
310
|
Helper.with_env_values('GIT_TERMINAL_PROMPT' => '0') do
|
311
|
+
command = ['git', 'clone', url, clone_folder, '--no-checkout']
|
312
312
|
# When using cached clones, we need the entire repository history
|
313
313
|
# so we can switch between tags or branches instantly, or else,
|
314
314
|
# it would defeat the caching's purpose.
|
315
|
-
|
316
|
-
|
317
|
-
|
315
|
+
command += ['--depth', '1'] unless is_eligible_for_caching
|
316
|
+
command += ['--branch', branch] unless branch == 'HEAD'
|
317
|
+
git_extra_headers.each do |header|
|
318
|
+
command += ['--config', "http.extraHeader=#{header}"]
|
319
|
+
end
|
320
|
+
Actions.sh(*command)
|
318
321
|
end
|
319
322
|
end
|
320
323
|
|
@@ -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]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Fastlane.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
import Foundation
|
5
5
|
|
@@ -2690,7 +2690,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
|
|
2690
2690
|
teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2691
2691
|
filename: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2692
2692
|
outputPath: String = ".",
|
2693
|
-
keychainPath: String,
|
2693
|
+
keychainPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2694
2694
|
keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2695
2695
|
skipSetPartitionList: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
2696
2696
|
platform: String = "ios")
|
@@ -2706,7 +2706,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
|
|
2706
2706
|
let teamNameArg = teamName.asRubyArgument(name: "team_name", type: nil)
|
2707
2707
|
let filenameArg = filename.asRubyArgument(name: "filename", type: nil)
|
2708
2708
|
let outputPathArg = RubyCommand.Argument(name: "output_path", value: outputPath, type: nil)
|
2709
|
-
let keychainPathArg =
|
2709
|
+
let keychainPathArg = keychainPath.asRubyArgument(name: "keychain_path", type: nil)
|
2710
2710
|
let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
|
2711
2711
|
let skipSetPartitionListArg = skipSetPartitionList.asRubyArgument(name: "skip_set_partition_list", type: nil)
|
2712
2712
|
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
@@ -4842,7 +4842,7 @@ public func getCertificates(development: OptionalConfigValue<Bool> = .fastlaneDe
|
|
4842
4842
|
teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4843
4843
|
filename: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4844
4844
|
outputPath: String = ".",
|
4845
|
-
keychainPath: String,
|
4845
|
+
keychainPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4846
4846
|
keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4847
4847
|
skipSetPartitionList: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
4848
4848
|
platform: String = "ios")
|
@@ -4858,7 +4858,7 @@ public func getCertificates(development: OptionalConfigValue<Bool> = .fastlaneDe
|
|
4858
4858
|
let teamNameArg = teamName.asRubyArgument(name: "team_name", type: nil)
|
4859
4859
|
let filenameArg = filename.asRubyArgument(name: "filename", type: nil)
|
4860
4860
|
let outputPathArg = RubyCommand.Argument(name: "output_path", value: outputPath, type: nil)
|
4861
|
-
let keychainPathArg =
|
4861
|
+
let keychainPathArg = keychainPath.asRubyArgument(name: "keychain_path", type: nil)
|
4862
4862
|
let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
|
4863
4863
|
let skipSetPartitionListArg = skipSetPartitionList.asRubyArgument(name: "skip_set_partition_list", type: nil)
|
4864
4864
|
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
@@ -9931,6 +9931,7 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
|
|
9931
9931
|
- force: Force setup, even if not executed by CI
|
9932
9932
|
- provider: CI provider. If none is set, the provider is detected automatically
|
9933
9933
|
- timeout: Set a custom timeout in seconds for keychain. Set `0` if you want to specify 'no time-out'
|
9934
|
+
- keychainName: Set a custom keychain name
|
9934
9935
|
|
9935
9936
|
- Creates a new temporary keychain for use with match|
|
9936
9937
|
- Switches match to `readonly` mode to not create new profiles/cert on CI|
|
@@ -9940,14 +9941,17 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
|
|
9940
9941
|
*/
|
9941
9942
|
public func setupCi(force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
9942
9943
|
provider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
9943
|
-
timeout: Int = 3600
|
9944
|
+
timeout: Int = 3600,
|
9945
|
+
keychainName: String = "fastlane_tmp_keychain")
|
9944
9946
|
{
|
9945
9947
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
9946
9948
|
let providerArg = provider.asRubyArgument(name: "provider", type: nil)
|
9947
9949
|
let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
|
9950
|
+
let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
|
9948
9951
|
let array: [RubyCommand.Argument?] = [forceArg,
|
9949
9952
|
providerArg,
|
9950
|
-
timeoutArg
|
9953
|
+
timeoutArg,
|
9954
|
+
keychainNameArg]
|
9951
9955
|
let args: [RubyCommand.Argument] = array
|
9952
9956
|
.filter { $0?.value != nil }
|
9953
9957
|
.compactMap { $0 }
|
@@ -11588,7 +11592,7 @@ public func teamName() {
|
|
11588
11592
|
}
|
11589
11593
|
|
11590
11594
|
/**
|
11591
|
-
Upload a new build to
|
11595
|
+
Upload a new build to SauceLabs' TestFairy
|
11592
11596
|
|
11593
11597
|
- parameters:
|
11594
11598
|
- apiKey: API Key for TestFairy
|
@@ -11602,11 +11606,17 @@ public func teamName() {
|
|
11602
11606
|
- autoUpdate: Allows an easy upgrade of all users to the current version. To enable set to 'on'
|
11603
11607
|
- notify: Send email to testers
|
11604
11608
|
- options: Array of options (shake,video_only_wifi,anonymous)
|
11605
|
-
- custom: Array of custom options. Contact support
|
11609
|
+
- custom: Array of custom options. Contact support for more information
|
11606
11610
|
- timeout: Request timeout in seconds
|
11607
11611
|
- tags: Custom tags that can be used to organize your builds
|
11612
|
+
- folderName: Name of the dashboard folder that contains this app
|
11613
|
+
- landingPageMode: Visibility of build landing after upload. Can be 'open' or 'closed'
|
11614
|
+
- uploadToSaucelabs: Upload file directly to Sauce Labs. It can be 'on' or 'off'
|
11615
|
+
- platform: Use if upload build is not iOS or Android. Contact support for more information
|
11616
|
+
|
11617
|
+
Upload a new build to [TestFairy](https://saucelabs.com/products/mobile-testing/app-betas).
|
11618
|
+
You can retrieve your API key on [your settings page](https://app.testfairy.com/settings/access-key)
|
11608
11619
|
|
11609
|
-
You can retrieve your API key on [your settings page](https://free.testfairy.com/settings/)
|
11610
11620
|
*/
|
11611
11621
|
public func testfairy(apiKey: String,
|
11612
11622
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
@@ -11621,7 +11631,11 @@ public func testfairy(apiKey: String,
|
|
11621
11631
|
options: [String] = [],
|
11622
11632
|
custom: String = "",
|
11623
11633
|
timeout: OptionalConfigValue<Int?> = .fastlaneDefault(nil),
|
11624
|
-
tags: [String] = []
|
11634
|
+
tags: [String] = [],
|
11635
|
+
folderName: String = "",
|
11636
|
+
landingPageMode: String = "open",
|
11637
|
+
uploadToSaucelabs: String = "off",
|
11638
|
+
platform: String = "")
|
11625
11639
|
{
|
11626
11640
|
let apiKeyArg = RubyCommand.Argument(name: "api_key", value: apiKey, type: nil)
|
11627
11641
|
let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil)
|
@@ -11637,6 +11651,10 @@ public func testfairy(apiKey: String,
|
|
11637
11651
|
let customArg = RubyCommand.Argument(name: "custom", value: custom, type: nil)
|
11638
11652
|
let timeoutArg = timeout.asRubyArgument(name: "timeout", type: nil)
|
11639
11653
|
let tagsArg = RubyCommand.Argument(name: "tags", value: tags, type: nil)
|
11654
|
+
let folderNameArg = RubyCommand.Argument(name: "folder_name", value: folderName, type: nil)
|
11655
|
+
let landingPageModeArg = RubyCommand.Argument(name: "landing_page_mode", value: landingPageMode, type: nil)
|
11656
|
+
let uploadToSaucelabsArg = RubyCommand.Argument(name: "upload_to_saucelabs", value: uploadToSaucelabs, type: nil)
|
11657
|
+
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
11640
11658
|
let array: [RubyCommand.Argument?] = [apiKeyArg,
|
11641
11659
|
ipaArg,
|
11642
11660
|
apkArg,
|
@@ -11650,7 +11668,11 @@ public func testfairy(apiKey: String,
|
|
11650
11668
|
optionsArg,
|
11651
11669
|
customArg,
|
11652
11670
|
timeoutArg,
|
11653
|
-
tagsArg
|
11671
|
+
tagsArg,
|
11672
|
+
folderNameArg,
|
11673
|
+
landingPageModeArg,
|
11674
|
+
uploadToSaucelabsArg,
|
11675
|
+
platformArg]
|
11654
11676
|
let args: [RubyCommand.Argument] = array
|
11655
11677
|
.filter { $0?.value != nil }
|
11656
11678
|
.compactMap { $0 }
|
@@ -11840,6 +11862,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11840
11862
|
- outputFilename: Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used)
|
11841
11863
|
- failBuild: Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter
|
11842
11864
|
- xcprettyNaming: Produces class name and test name identical to xcpretty naming in junit file
|
11865
|
+
- forceLegacyXcresulttool: Force the use of the '--legacy' flag for xcresulttool instead of using the new commands
|
11843
11866
|
- silent: Silences all output
|
11844
11867
|
- outputRemoveRetryAttempts: Doesn't include retry attempts in the output
|
11845
11868
|
|
@@ -11851,6 +11874,7 @@ public func trainer(path: String = ".",
|
|
11851
11874
|
outputFilename: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11852
11875
|
failBuild: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
11853
11876
|
xcprettyNaming: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11877
|
+
forceLegacyXcresulttool: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11854
11878
|
silent: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11855
11879
|
outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
11856
11880
|
{
|
@@ -11860,6 +11884,7 @@ public func trainer(path: String = ".",
|
|
11860
11884
|
let outputFilenameArg = outputFilename.asRubyArgument(name: "output_filename", type: nil)
|
11861
11885
|
let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil)
|
11862
11886
|
let xcprettyNamingArg = xcprettyNaming.asRubyArgument(name: "xcpretty_naming", type: nil)
|
11887
|
+
let forceLegacyXcresulttoolArg = forceLegacyXcresulttool.asRubyArgument(name: "force_legacy_xcresulttool", type: nil)
|
11863
11888
|
let silentArg = silent.asRubyArgument(name: "silent", type: nil)
|
11864
11889
|
let outputRemoveRetryAttemptsArg = outputRemoveRetryAttempts.asRubyArgument(name: "output_remove_retry_attempts", type: nil)
|
11865
11890
|
let array: [RubyCommand.Argument?] = [pathArg,
|
@@ -11868,6 +11893,7 @@ public func trainer(path: String = ".",
|
|
11868
11893
|
outputFilenameArg,
|
11869
11894
|
failBuildArg,
|
11870
11895
|
xcprettyNamingArg,
|
11896
|
+
forceLegacyXcresulttoolArg,
|
11871
11897
|
silentArg,
|
11872
11898
|
outputRemoveRetryAttemptsArg]
|
11873
11899
|
let args: [RubyCommand.Argument] = array
|
@@ -13861,4 +13887,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
13861
13887
|
|
13862
13888
|
// Please don't remove the lines below
|
13863
13889
|
// They are used to detect outdated files
|
13864
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13890
|
+
// FastlaneRunnerAPIVersion [0.9.186]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Gymfile.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 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.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// GymfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol GymfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
@@ -212,4 +212,4 @@ public extension GymfileProtocol {
|
|
212
212
|
|
213
213
|
// Please don't remove the lines below
|
214
214
|
// They are used to detect outdated files
|
215
|
-
// FastlaneRunnerAPIVersion [0.9.
|
215
|
+
// FastlaneRunnerAPIVersion [0.9.136]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Matchfile.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 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.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// MatchfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol MatchfileProtocol: AnyObject {
|
5
5
|
/// Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer
|
@@ -232,4 +232,4 @@ public extension MatchfileProtocol {
|
|
232
232
|
|
233
233
|
// Please don't remove the lines below
|
234
234
|
// They are used to detect outdated files
|
235
|
-
// FastlaneRunnerAPIVersion [0.9.
|
235
|
+
// FastlaneRunnerAPIVersion [0.9.130]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Precheckfile.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 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.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// PrecheckfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol PrecheckfileProtocol: 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)
|
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
|
|
52
52
|
|
53
53
|
// Please don't remove the lines below
|
54
54
|
// They are used to detect outdated files
|
55
|
-
// FastlaneRunnerAPIVersion [0.9.
|
55
|
+
// FastlaneRunnerAPIVersion [0.9.129]
|
data/fastlane/swift/Runner.swift
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Scanfile.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 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.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// ScanfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol ScanfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
@@ -324,4 +324,4 @@ public extension ScanfileProtocol {
|
|
324
324
|
|
325
325
|
// Please don't remove the lines below
|
326
326
|
// They are used to detect outdated files
|
327
|
-
// FastlaneRunnerAPIVersion [0.9.
|
327
|
+
// FastlaneRunnerAPIVersion [0.9.141]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Screengrabfile.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 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.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// ScreengrabfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 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
|
@@ -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.131]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Snapshotfile.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 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.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SnapshotfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol SnapshotfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
@@ -208,4 +208,4 @@ public extension SnapshotfileProtocol {
|
|
208
208
|
|
209
209
|
// Please don't remove the lines below
|
210
210
|
// They are used to detect outdated files
|
211
|
-
// FastlaneRunnerAPIVersion [0.9.
|
211
|
+
// FastlaneRunnerAPIVersion [0.9.125]
|
data/fastlane/swift/main.swift
CHANGED
@@ -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', 'BUDDY'].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', 'CODEBUILD_BUILD_ARN'].each do |current|
|
78
78
|
return true if FastlaneCore::Env.truthy?(current)
|
79
79
|
end
|
80
80
|
return false
|
@@ -84,6 +84,11 @@ module FastlaneCore
|
|
84
84
|
return ENV.key?('CIRCLECI')
|
85
85
|
end
|
86
86
|
|
87
|
+
# @return [boolean] true if environment variable CODEBUILD_BUILD_ARN is set
|
88
|
+
def self.is_codebuild?
|
89
|
+
return ENV.key?('CODEBUILD_BUILD_ARN')
|
90
|
+
end
|
91
|
+
|
87
92
|
def self.operating_system
|
88
93
|
return "macOS" if RUBY_PLATFORM.downcase.include?("darwin")
|
89
94
|
return "Windows" if RUBY_PLATFORM.downcase.include?("mswin")
|
@@ -1,11 +1,11 @@
|
|
1
1
|
## [fastlane match](https://docs.fastlane.tools/actions/match/)
|
2
2
|
|
3
|
+
> Do not modify this file, as it gets overwritten every time you run _match_.
|
4
|
+
|
3
5
|
This repository contains all your certificates and provisioning profiles needed to build and sign your applications. They are encrypted using OpenSSL via a passphrase.
|
4
6
|
|
5
7
|
**Important:** Make sure this repository is set to private and only your team members have access to this repo.
|
6
8
|
|
7
|
-
Do not modify this file, as it gets overwritten every time you run _match_.
|
8
|
-
|
9
9
|
### Installation
|
10
10
|
|
11
11
|
Make sure you have the latest version of the Xcode command line tools installed:
|
@@ -32,8 +32,8 @@ module Match
|
|
32
32
|
username: params[:username],
|
33
33
|
team_id: params[:team_id],
|
34
34
|
team_name: params[:team_name],
|
35
|
-
keychain_path: FastlaneCore::Helper.keychain_path(params[:keychain_name]),
|
36
|
-
keychain_password: params[:keychain_password],
|
35
|
+
keychain_path: Helper.mac? ? FastlaneCore::Helper.keychain_path(params[:keychain_name]) : nil,
|
36
|
+
keychain_password: Helper.mac? ? params[:keychain_password] : nil,
|
37
37
|
skip_set_partition_list: params[:skip_set_partition_list]
|
38
38
|
})
|
39
39
|
|
data/match/lib/match/runner.rb
CHANGED
@@ -56,7 +56,7 @@ module Match
|
|
56
56
|
|
57
57
|
unless params[:readonly]
|
58
58
|
self.spaceship = SpaceshipEnsure.new(params[:username], params[:team_id], params[:team_name], api_token(params))
|
59
|
-
if params[:type] == "enterprise" && !Spaceship.client.in_house?
|
59
|
+
if params[:type] == "enterprise" && !Spaceship::ConnectAPI.client.in_house?
|
60
60
|
UI.user_error!("You defined the profile type 'enterprise', but your Apple account doesn't support In-House profiles")
|
61
61
|
end
|
62
62
|
end
|
@@ -84,7 +84,7 @@ module Precheck
|
|
84
84
|
optional: true,
|
85
85
|
default_value: "ios",
|
86
86
|
verify_block: proc do |value|
|
87
|
-
UI.user_error!("The platform can only be ios, appletvos
|
87
|
+
UI.user_error!("The platform can only be ios, appletvos/tvos or osx") unless %w(ios appletvos tvos osx).include?(value)
|
88
88
|
end),
|
89
89
|
FastlaneCore::ConfigItem.new(key: :default_rule_level,
|
90
90
|
short_option: "-r",
|