diff --git a/fastlane/swift/DeliverfileProtocol.swift b/fastlane/swift/DeliverfileProtocol.swift index 6ffc44eb..653cabe0 100644 --- a/fastlane/swift/DeliverfileProtocol.swift +++ b/fastlane/swift/DeliverfileProtocol.swift @@ -272,4 +272,4 @@ public extension DeliverfileProtocol { // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.127] +// FastlaneRunnerAPIVersion [0.9.131] diff --git a/fastlane/swift/Fastlane.swift b/fastlane/swift/Fastlane.swift index cb306439..be282cbe 100644 --- a/fastlane/swift/Fastlane.swift +++ b/fastlane/swift/Fastlane.swift @@ -1342,6 +1342,7 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file - useSystemScm: Lets xcodebuild use system's scm configuration + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - returns: The absolute path to the generated ipa file @@ -1396,7 +1397,8 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul clonedSourcePackagesPath: OptionalConfigValue = .fastlaneDefault(nil), skipPackageDependenciesResolution: OptionalConfigValue = .fastlaneDefault(false), disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(false), - useSystemScm: OptionalConfigValue = .fastlaneDefault(false)) -> String + useSystemScm: OptionalConfigValue = .fastlaneDefault(false), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(nil)) -> String { let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil) let projectArg = project.asRubyArgument(name: "project", type: nil) @@ -1448,6 +1450,7 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil) let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil) let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let array: [RubyCommand.Argument?] = [workspaceArg, projectArg, schemeArg, @@ -1497,7 +1500,8 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul clonedSourcePackagesPathArg, skipPackageDependenciesResolutionArg, disablePackageAutomaticUpdatesArg, - useSystemScmArg] + useSystemScmArg, + packageAuthorizationProviderArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -1556,6 +1560,7 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file - useSystemScm: Lets xcodebuild use system's scm configuration + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - returns: The absolute path to the generated ipa file @@ -1607,7 +1612,8 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul clonedSourcePackagesPath: OptionalConfigValue = .fastlaneDefault(nil), skipPackageDependenciesResolution: OptionalConfigValue = .fastlaneDefault(false), disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(false), - useSystemScm: OptionalConfigValue = .fastlaneDefault(false)) -> String + useSystemScm: OptionalConfigValue = .fastlaneDefault(false), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(nil)) -> String { let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil) let projectArg = project.asRubyArgument(name: "project", type: nil) @@ -1656,6 +1662,7 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil) let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil) let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let array: [RubyCommand.Argument?] = [workspaceArg, projectArg, schemeArg, @@ -1702,7 +1709,8 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul clonedSourcePackagesPathArg, skipPackageDependenciesResolutionArg, disablePackageAutomaticUpdatesArg, - useSystemScmArg] + useSystemScmArg, + packageAuthorizationProviderArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -1762,6 +1770,7 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file - useSystemScm: Lets xcodebuild use system's scm configuration + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - returns: The absolute path to the generated ipa file @@ -1814,7 +1823,8 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul clonedSourcePackagesPath: OptionalConfigValue = .fastlaneDefault(nil), skipPackageDependenciesResolution: OptionalConfigValue = .fastlaneDefault(false), disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(false), - useSystemScm: OptionalConfigValue = .fastlaneDefault(false)) -> String + useSystemScm: OptionalConfigValue = .fastlaneDefault(false), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(nil)) -> String { let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil) let projectArg = project.asRubyArgument(name: "project", type: nil) @@ -1864,6 +1874,7 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil) let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil) let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let array: [RubyCommand.Argument?] = [workspaceArg, projectArg, schemeArg, @@ -1911,7 +1922,8 @@ public func buildAndroidApp(task: OptionalConfigValue = .fastlaneDefaul clonedSourcePackagesPathArg, skipPackageDependenciesResolutionArg, disablePackageAutomaticUpdatesArg, - useSystemScmArg] + useSystemScmArg, + packageAuthorizationProviderArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -2158,6 +2170,7 @@ public func captureAndroidScreenshots(androidHome: OptionalConfigValue - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - testplan: The testplan associated with the scheme that should be used for testing - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip @@ -2208,6 +2221,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue = .fas clonedSourcePackagesPath: OptionalConfigValue = .fastlaneDefault(nil), skipPackageDependenciesResolution: OptionalConfigValue = .fastlaneDefault(false), disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(false), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(nil), testplan: OptionalConfigValue = .fastlaneDefault(nil), onlyTesting: Any? = nil, skipTesting: Any? = nil, @@ -2258,6 +2272,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue = .fas let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil) let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil) let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let testplanArg = testplan.asRubyArgument(name: "testplan", type: nil) let onlyTestingArg = RubyCommand.Argument(name: "only_testing", value: onlyTesting, type: nil) let skipTestingArg = RubyCommand.Argument(name: "skip_testing", value: skipTesting, type: nil) @@ -2307,6 +2322,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue = .fas clonedSourcePackagesPathArg, skipPackageDependenciesResolutionArg, disablePackageAutomaticUpdatesArg, + packageAuthorizationProviderArg, testplanArg, onlyTestingArg, skipTestingArg, @@ -2367,6 +2383,7 @@ public func captureIosScreenshots(workspace: OptionalConfigValue = .fas - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - testplan: The testplan associated with the scheme that should be used for testing - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip @@ -2417,6 +2434,7 @@ public func captureScreenshots(workspace: OptionalConfigValue = .fastla clonedSourcePackagesPath: OptionalConfigValue = .fastlaneDefault(nil), skipPackageDependenciesResolution: OptionalConfigValue = .fastlaneDefault(false), disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(false), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(nil), testplan: OptionalConfigValue = .fastlaneDefault(nil), onlyTesting: Any? = nil, skipTesting: Any? = nil, @@ -2467,6 +2485,7 @@ public func captureScreenshots(workspace: OptionalConfigValue = .fastla let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil) let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil) let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let testplanArg = testplan.asRubyArgument(name: "testplan", type: nil) let onlyTestingArg = RubyCommand.Argument(name: "only_testing", value: onlyTesting, type: nil) let skipTestingArg = RubyCommand.Argument(name: "skip_testing", value: skipTesting, type: nil) @@ -2516,6 +2535,7 @@ public func captureScreenshots(workspace: OptionalConfigValue = .fastla clonedSourcePackagesPathArg, skipPackageDependenciesResolutionArg, disablePackageAutomaticUpdatesArg, + packageAuthorizationProviderArg, testplanArg, onlyTestingArg, skipTestingArg, @@ -2727,6 +2747,7 @@ public func cert(development: OptionalConfigValue = .fastlaneDefault(false - quiet: Whether or not to disable changelog output - includeMerges: **DEPRECATED!** Use `:merge_commit_filtering` instead - Whether or not to include any commits that are merges - mergeCommitFiltering: Controls inclusion of merge commits when collecting the changelog. Valid values: 'include_merges', 'exclude_merges', 'only_include_merges' + - appPath: Scopes the changelog to a specific subdirectory of the repository - returns: Returns a String containing your formatted git commits @@ -2742,7 +2763,8 @@ public func cert(development: OptionalConfigValue = .fastlaneDefault(false matchLightweightTag: OptionalConfigValue = .fastlaneDefault(true), quiet: OptionalConfigValue = .fastlaneDefault(false), includeMerges: OptionalConfigValue = .fastlaneDefault(nil), - mergeCommitFiltering: String = "include_merges") -> String + mergeCommitFiltering: String = "include_merges", + appPath: OptionalConfigValue = .fastlaneDefault(nil)) -> String { let betweenArg = between.asRubyArgument(name: "between", type: nil) let commitsCountArg = commitsCount.asRubyArgument(name: "commits_count", type: nil) @@ -2755,6 +2777,7 @@ public func cert(development: OptionalConfigValue = .fastlaneDefault(false let quietArg = quiet.asRubyArgument(name: "quiet", type: nil) let includeMergesArg = includeMerges.asRubyArgument(name: "include_merges", type: nil) let mergeCommitFilteringArg = RubyCommand.Argument(name: "merge_commit_filtering", value: mergeCommitFiltering, type: nil) + let appPathArg = appPath.asRubyArgument(name: "app_path", type: nil) let array: [RubyCommand.Argument?] = [betweenArg, commitsCountArg, pathArg, @@ -2765,7 +2788,8 @@ public func cert(development: OptionalConfigValue = .fastlaneDefault(false matchLightweightTagArg, quietArg, includeMergesArg, - mergeCommitFilteringArg] + mergeCommitFilteringArg, + appPathArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -5692,6 +5716,7 @@ public func gradle(task: OptionalConfigValue = .fastlaneDefault(nil), - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file - useSystemScm: Lets xcodebuild use system's scm configuration + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - returns: The absolute path to the generated ipa file @@ -5746,7 +5771,8 @@ public func gradle(task: OptionalConfigValue = .fastlaneDefault(nil), clonedSourcePackagesPath: OptionalConfigValue = .fastlaneDefault(gymfile.clonedSourcePackagesPath), skipPackageDependenciesResolution: OptionalConfigValue = .fastlaneDefault(gymfile.skipPackageDependenciesResolution), disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(gymfile.disablePackageAutomaticUpdates), - useSystemScm: OptionalConfigValue = .fastlaneDefault(gymfile.useSystemScm)) -> String + useSystemScm: OptionalConfigValue = .fastlaneDefault(gymfile.useSystemScm), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(gymfile.packageAuthorizationProvider)) -> String { let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil) let projectArg = project.asRubyArgument(name: "project", type: nil) @@ -5798,6 +5824,7 @@ public func gradle(task: OptionalConfigValue = .fastlaneDefault(nil), let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil) let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil) let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let array: [RubyCommand.Argument?] = [workspaceArg, projectArg, schemeArg, @@ -5847,7 +5874,8 @@ public func gradle(task: OptionalConfigValue = .fastlaneDefault(nil), clonedSourcePackagesPathArg, skipPackageDependenciesResolutionArg, disablePackageAutomaticUpdatesArg, - useSystemScmArg] + useSystemScmArg, + packageAuthorizationProviderArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -6795,6 +6823,7 @@ public func makeChangelogFromJenkins(fallbackChangelog: String = "", - skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action - outputPath: Path in which to export certificates, key and profile - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing + - forceLegacyEncryption: Force encryption to use legacy cbc algorithm for backwards compatibility with older match versions - verbose: Print out extra information and all commands More information: https://docs.fastlane.tools/actions/match/ @@ -6853,6 +6882,7 @@ public func match(type: String = matchfile.type, skipCertificateMatching: OptionalConfigValue = .fastlaneDefault(matchfile.skipCertificateMatching), outputPath: OptionalConfigValue = .fastlaneDefault(matchfile.outputPath), skipSetPartitionList: OptionalConfigValue = .fastlaneDefault(matchfile.skipSetPartitionList), + forceLegacyEncryption: OptionalConfigValue = .fastlaneDefault(matchfile.forceLegacyEncryption), verbose: OptionalConfigValue = .fastlaneDefault(matchfile.verbose)) { let typeArg = RubyCommand.Argument(name: "type", value: type, type: nil) @@ -6909,6 +6939,7 @@ public func match(type: String = matchfile.type, let skipCertificateMatchingArg = skipCertificateMatching.asRubyArgument(name: "skip_certificate_matching", type: nil) let outputPathArg = outputPath.asRubyArgument(name: "output_path", type: nil) let skipSetPartitionListArg = skipSetPartitionList.asRubyArgument(name: "skip_set_partition_list", type: nil) + let forceLegacyEncryptionArg = forceLegacyEncryption.asRubyArgument(name: "force_legacy_encryption", type: nil) let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil) let array: [RubyCommand.Argument?] = [typeArg, additionalCertTypesArg, @@ -6964,6 +6995,7 @@ public func match(type: String = matchfile.type, skipCertificateMatchingArg, outputPathArg, skipSetPartitionListArg, + forceLegacyEncryptionArg, verboseArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } @@ -7030,6 +7062,7 @@ public func match(type: String = matchfile.type, - skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action - outputPath: Path in which to export certificates, key and profile - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing + - forceLegacyEncryption: Force encryption to use legacy cbc algorithm for backwards compatibility with older match versions - verbose: Print out extra information and all commands Use the match_nuke action to revoke your certificates and provisioning profiles. @@ -7092,6 +7125,7 @@ public func matchNuke(type: String = "development", skipCertificateMatching: OptionalConfigValue = .fastlaneDefault(false), outputPath: OptionalConfigValue = .fastlaneDefault(nil), skipSetPartitionList: OptionalConfigValue = .fastlaneDefault(false), + forceLegacyEncryption: OptionalConfigValue = .fastlaneDefault(false), verbose: OptionalConfigValue = .fastlaneDefault(false)) { let typeArg = RubyCommand.Argument(name: "type", value: type, type: nil) @@ -7148,6 +7182,7 @@ public func matchNuke(type: String = "development", let skipCertificateMatchingArg = skipCertificateMatching.asRubyArgument(name: "skip_certificate_matching", type: nil) let outputPathArg = outputPath.asRubyArgument(name: "output_path", type: nil) let skipSetPartitionListArg = skipSetPartitionList.asRubyArgument(name: "skip_set_partition_list", type: nil) + let forceLegacyEncryptionArg = forceLegacyEncryption.asRubyArgument(name: "force_legacy_encryption", type: nil) let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil) let array: [RubyCommand.Argument?] = [typeArg, additionalCertTypesArg, @@ -7203,6 +7238,7 @@ public func matchNuke(type: String = "development", skipCertificateMatchingArg, outputPathArg, skipSetPartitionListArg, + forceLegacyEncryptionArg, verboseArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } @@ -8854,6 +8890,7 @@ public func rubyVersion() { - useSystemScm: Lets xcodebuild use system's scm configuration - numberOfRetries: The number of times a test can fail - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - returns: Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries @@ -8936,7 +8973,8 @@ public func rubyVersion() { disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(false), useSystemScm: OptionalConfigValue = .fastlaneDefault(false), numberOfRetries: Int = 0, - failBuild: OptionalConfigValue = .fastlaneDefault(true)) -> [String: Any] + failBuild: OptionalConfigValue = .fastlaneDefault(true), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(nil)) -> [String: Any] { let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil) let projectArg = project.asRubyArgument(name: "project", type: nil) @@ -9016,6 +9054,7 @@ public func rubyVersion() { let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil) let numberOfRetriesArg = RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries, type: nil) let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let array: [RubyCommand.Argument?] = [workspaceArg, projectArg, packagePathArg, @@ -9093,7 +9132,8 @@ public func rubyVersion() { disablePackageAutomaticUpdatesArg, useSystemScmArg, numberOfRetriesArg, - failBuildArg] + failBuildArg, + packageAuthorizationProviderArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -9285,6 +9325,7 @@ public func say(text: [String], - useSystemScm: Lets xcodebuild use system's scm configuration - numberOfRetries: The number of times a test can fail - failBuild: Should this step stop the build if the tests fail? Set this to false if you're using trainer + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - returns: Outputs hash of results with the following keys: :number_of_tests, :number_of_failures, :number_of_retries, :number_of_tests_excluding_retries, :number_of_failures_excluding_retries @@ -9367,7 +9408,8 @@ public func say(text: [String], disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(scanfile.disablePackageAutomaticUpdates), useSystemScm: OptionalConfigValue = .fastlaneDefault(scanfile.useSystemScm), numberOfRetries: Int = scanfile.numberOfRetries, - failBuild: OptionalConfigValue = .fastlaneDefault(scanfile.failBuild)) -> [String: Any] + failBuild: OptionalConfigValue = .fastlaneDefault(scanfile.failBuild), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(scanfile.packageAuthorizationProvider)) -> [String: Any] { let workspaceArg = workspace.asRubyArgument(name: "workspace", type: nil) let projectArg = project.asRubyArgument(name: "project", type: nil) @@ -9447,6 +9489,7 @@ public func say(text: [String], let useSystemScmArg = useSystemScm.asRubyArgument(name: "use_system_scm", type: nil) let numberOfRetriesArg = RubyCommand.Argument(name: "number_of_retries", value: numberOfRetries, type: nil) let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let array: [RubyCommand.Argument?] = [workspaceArg, projectArg, packagePathArg, @@ -9524,7 +9567,8 @@ public func say(text: [String], disablePackageAutomaticUpdatesArg, useSystemScmArg, numberOfRetriesArg, - failBuildArg] + failBuildArg, + packageAuthorizationProviderArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -10205,7 +10249,8 @@ public func skipDocs() { - useWebhookConfiguredUsernameAndIcon: Use webhook's default username and icon settings? (true/false) - slackUrl: Create an Incoming WebHook for your Slack group - username: Overrides the webhook's username property if use_webhook_configured_username_and_icon is false - - iconUrl: Overrides the webhook's image property if use_webhook_configured_username_and_icon is false + - iconUrl: Specifies a URL of an image to use as the photo of the message. Overrides the webhook's image property if use_webhook_configured_username_and_icon is false + - iconEmoji: Specifies an emoji (using colon shortcodes, eg. :white_check_mark:) to use as the photo of the message. Overrides the webhook's image property if use_webhook_configured_username_and_icon is false. This parameter takes precedence over icon_url - payload: Add additional information to this post. payload must be a hash containing any key with any value - defaultPayloads: Specifies default payloads to include. Pass an empty array to suppress all the default payloads - attachmentProperties: Merge additional properties in the slack attachment, see https://api.slack.com/docs/attachments @@ -10222,6 +10267,7 @@ public func slack(message: OptionalConfigValue = .fastlaneDefault(nil), slackUrl: String, username: String = "fastlane", iconUrl: String = "https://fastlane.tools/assets/img/fastlane_icon.png", + iconEmoji: OptionalConfigValue = .fastlaneDefault(nil), payload: [String: Any] = [:], defaultPayloads: [String] = ["lane", "test_result", "git_branch", "git_author", "last_git_commit", "last_git_commit_hash"], attachmentProperties: [String: Any] = [:], @@ -10236,6 +10282,7 @@ public func slack(message: OptionalConfigValue = .fastlaneDefault(nil), let slackUrlArg = RubyCommand.Argument(name: "slack_url", value: slackUrl, type: nil) let usernameArg = RubyCommand.Argument(name: "username", value: username, type: nil) let iconUrlArg = RubyCommand.Argument(name: "icon_url", value: iconUrl, type: nil) + let iconEmojiArg = iconEmoji.asRubyArgument(name: "icon_emoji", type: nil) let payloadArg = RubyCommand.Argument(name: "payload", value: payload, type: nil) let defaultPayloadsArg = RubyCommand.Argument(name: "default_payloads", value: defaultPayloads, type: nil) let attachmentPropertiesArg = RubyCommand.Argument(name: "attachment_properties", value: attachmentProperties, type: nil) @@ -10249,6 +10296,7 @@ public func slack(message: OptionalConfigValue = .fastlaneDefault(nil), slackUrlArg, usernameArg, iconUrlArg, + iconEmojiArg, payloadArg, defaultPayloadsArg, attachmentPropertiesArg, @@ -10504,6 +10552,7 @@ public func slather(buildDirectory: OptionalConfigValue = .fastlaneDefa - clonedSourcePackagesPath: Sets a custom path for Swift Package Manager dependencies - skipPackageDependenciesResolution: Skips resolution of Swift Package Manager dependencies - disablePackageAutomaticUpdates: Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file + - packageAuthorizationProvider: Lets xcodebuild use a specified package authorization provider (keychain|netrc) - testplan: The testplan associated with the scheme that should be used for testing - onlyTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to run - skipTesting: Array of strings matching Test Bundle/Test Suite/Test Cases to skip @@ -10554,6 +10603,7 @@ public func snapshot(workspace: OptionalConfigValue = .fastlaneDefault( clonedSourcePackagesPath: OptionalConfigValue = .fastlaneDefault(snapshotfile.clonedSourcePackagesPath), skipPackageDependenciesResolution: OptionalConfigValue = .fastlaneDefault(snapshotfile.skipPackageDependenciesResolution), disablePackageAutomaticUpdates: OptionalConfigValue = .fastlaneDefault(snapshotfile.disablePackageAutomaticUpdates), + packageAuthorizationProvider: OptionalConfigValue = .fastlaneDefault(snapshotfile.packageAuthorizationProvider), testplan: OptionalConfigValue = .fastlaneDefault(snapshotfile.testplan), onlyTesting: Any? = snapshotfile.onlyTesting, skipTesting: Any? = snapshotfile.skipTesting, @@ -10604,6 +10654,7 @@ public func snapshot(workspace: OptionalConfigValue = .fastlaneDefault( let clonedSourcePackagesPathArg = clonedSourcePackagesPath.asRubyArgument(name: "cloned_source_packages_path", type: nil) let skipPackageDependenciesResolutionArg = skipPackageDependenciesResolution.asRubyArgument(name: "skip_package_dependencies_resolution", type: nil) let disablePackageAutomaticUpdatesArg = disablePackageAutomaticUpdates.asRubyArgument(name: "disable_package_automatic_updates", type: nil) + let packageAuthorizationProviderArg = packageAuthorizationProvider.asRubyArgument(name: "package_authorization_provider", type: nil) let testplanArg = testplan.asRubyArgument(name: "testplan", type: nil) let onlyTestingArg = RubyCommand.Argument(name: "only_testing", value: onlyTesting, type: nil) let skipTestingArg = RubyCommand.Argument(name: "skip_testing", value: skipTesting, type: nil) @@ -10653,6 +10704,7 @@ public func snapshot(workspace: OptionalConfigValue = .fastlaneDefault( clonedSourcePackagesPathArg, skipPackageDependenciesResolutionArg, disablePackageAutomaticUpdatesArg, + packageAuthorizationProviderArg, testplanArg, onlyTestingArg, skipTestingArg, @@ -11336,6 +11388,7 @@ public func swiftlint(mode: String = "lint", - skipCertificateMatching: Set to true if there is no access to Apple developer portal but there are certificates, keys and profiles provided. Only works with match import action - outputPath: Path in which to export certificates, key and profile - skipSetPartitionList: Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing + - forceLegacyEncryption: Force encryption to use legacy cbc algorithm for backwards compatibility with older match versions - verbose: Print out extra information and all commands More information: https://docs.fastlane.tools/actions/match/ @@ -11394,6 +11447,7 @@ public func syncCodeSigning(type: String = "development", skipCertificateMatching: OptionalConfigValue = .fastlaneDefault(false), outputPath: OptionalConfigValue = .fastlaneDefault(nil), skipSetPartitionList: OptionalConfigValue = .fastlaneDefault(false), + forceLegacyEncryption: OptionalConfigValue = .fastlaneDefault(false), verbose: OptionalConfigValue = .fastlaneDefault(false)) { let typeArg = RubyCommand.Argument(name: "type", value: type, type: nil) @@ -11450,6 +11504,7 @@ public func syncCodeSigning(type: String = "development", let skipCertificateMatchingArg = skipCertificateMatching.asRubyArgument(name: "skip_certificate_matching", type: nil) let outputPathArg = outputPath.asRubyArgument(name: "output_path", type: nil) let skipSetPartitionListArg = skipSetPartitionList.asRubyArgument(name: "skip_set_partition_list", type: nil) + let forceLegacyEncryptionArg = forceLegacyEncryption.asRubyArgument(name: "force_legacy_encryption", type: nil) let verboseArg = verbose.asRubyArgument(name: "verbose", type: nil) let array: [RubyCommand.Argument?] = [typeArg, additionalCertTypesArg, @@ -11505,6 +11560,7 @@ public func syncCodeSigning(type: String = "development", skipCertificateMatchingArg, outputPathArg, skipSetPartitionListArg, + forceLegacyEncryptionArg, verboseArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } @@ -11548,6 +11604,7 @@ public func teamName() { - options: Array of options (shake,video_only_wifi,anonymous) - custom: Array of custom options. Contact support@testfairy.com for more information - timeout: Request timeout in seconds + - tags: Custom tags that can be used to organize your builds You can retrieve your API key on [your settings page](https://free.testfairy.com/settings/) */ @@ -11563,7 +11620,8 @@ public func testfairy(apiKey: String, notify: String = "off", options: [String] = [], custom: String = "", - timeout: OptionalConfigValue = .fastlaneDefault(nil)) + timeout: OptionalConfigValue = .fastlaneDefault(nil), + tags: [String] = []) { let apiKeyArg = RubyCommand.Argument(name: "api_key", value: apiKey, type: nil) let ipaArg = ipa.asRubyArgument(name: "ipa", type: nil) @@ -11578,6 +11636,7 @@ public func testfairy(apiKey: String, let optionsArg = RubyCommand.Argument(name: "options", value: options, type: nil) let customArg = RubyCommand.Argument(name: "custom", value: custom, type: nil) let timeoutArg = timeout.asRubyArgument(name: "timeout", type: nil) + let tagsArg = RubyCommand.Argument(name: "tags", value: tags, type: nil) let array: [RubyCommand.Argument?] = [apiKeyArg, ipaArg, apkArg, @@ -11590,7 +11649,8 @@ public func testfairy(apiKey: String, notifyArg, optionsArg, customArg, - timeoutArg] + timeoutArg, + tagsArg] let args: [RubyCommand.Argument] = array .filter { $0?.value != nil } .compactMap { $0 } @@ -13801,4 +13861,4 @@ public let snapshotfile: Snapshotfile = .init() // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.180] +// FastlaneRunnerAPIVersion [0.9.184] diff --git a/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj b/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj index 48ebd670..3e8e8807 100644 --- a/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj +++ b/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj @@ -46,7 +46,7 @@ C0459CAB27261886002CDFB9 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; - dstPath = "$SRCROOT/../.."; + dstPath = $SRCROOT/../..; dstSubfolderSpec = 0; files = ( C0459CAC27261897002CDFB9 /* FastlaneRunner in CopyFiles */, diff --git a/fastlane/swift/GymfileProtocol.swift b/fastlane/swift/GymfileProtocol.swift index 00750295..f6c7eca5 100644 --- a/fastlane/swift/GymfileProtocol.swift +++ b/fastlane/swift/GymfileProtocol.swift @@ -151,6 +151,9 @@ public protocol GymfileProtocol: AnyObject { /// Lets xcodebuild use system's scm configuration var useSystemScm: Bool { get } + + /// Lets xcodebuild use a specified package authorization provider (keychain|netrc) + var packageAuthorizationProvider: String? { get } } public extension GymfileProtocol { @@ -204,8 +207,9 @@ public extension GymfileProtocol { var skipPackageDependenciesResolution: Bool { return false } var disablePackageAutomaticUpdates: Bool { return false } var useSystemScm: Bool { return false } + var packageAuthorizationProvider: String? { return nil } } // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.130] +// FastlaneRunnerAPIVersion [0.9.134] diff --git a/fastlane/swift/LaneFileProtocol.swift b/fastlane/swift/LaneFileProtocol.swift index a4681537..211be520 100644 --- a/fastlane/swift/LaneFileProtocol.swift +++ b/fastlane/swift/LaneFileProtocol.swift @@ -40,7 +40,11 @@ open class LaneFile: NSObject, LaneFileProtocol { return String(laneName.prefix(laneName.count - 12)) } - public func onError(currentLane: String, errorInfo _: String, errorClass _: String?, errorMessage _: String?) { + open func beforeAll(with _: String) {} + + open func afterAll(with _: String) {} + + open func onError(currentLane: String, errorInfo _: String, errorClass _: String?, errorMessage _: String?) { LaneFile.onErrorCalled.insert(currentLane) } diff --git a/fastlane/swift/MatchfileProtocol.swift b/fastlane/swift/MatchfileProtocol.swift index bee8d3af..292f8771 100644 --- a/fastlane/swift/MatchfileProtocol.swift +++ b/fastlane/swift/MatchfileProtocol.swift @@ -164,6 +164,9 @@ public protocol MatchfileProtocol: AnyObject { /// Skips setting the partition list (which can sometimes take a long time). Setting the partition list is usually needed to prevent Xcode from prompting to allow a cert to be used for signing var skipSetPartitionList: Bool { get } + /// Force encryption to use legacy cbc algorithm for backwards compatibility with older match versions + var forceLegacyEncryption: Bool { get } + /// Print out extra information and all commands var verbose: Bool { get } } @@ -223,9 +226,10 @@ public extension MatchfileProtocol { var skipCertificateMatching: Bool { return false } var outputPath: String? { return nil } var skipSetPartitionList: Bool { return false } + var forceLegacyEncryption: Bool { return false } var verbose: Bool { return false } } // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.124] +// FastlaneRunnerAPIVersion [0.9.128] diff --git a/fastlane/swift/PrecheckfileProtocol.swift b/fastlane/swift/PrecheckfileProtocol.swift index 8355fe48..fcac61a5 100644 --- a/fastlane/swift/PrecheckfileProtocol.swift +++ b/fastlane/swift/PrecheckfileProtocol.swift @@ -52,4 +52,4 @@ public extension PrecheckfileProtocol { // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.123] +// FastlaneRunnerAPIVersion [0.9.127] diff --git a/fastlane/swift/ScanfileProtocol.swift b/fastlane/swift/ScanfileProtocol.swift index 6885c88d..16592f71 100644 --- a/fastlane/swift/ScanfileProtocol.swift +++ b/fastlane/swift/ScanfileProtocol.swift @@ -235,6 +235,9 @@ public protocol ScanfileProtocol: AnyObject { /// Should this step stop the build if the tests fail? Set this to false if you're using trainer var failBuild: Bool { get } + + /// Lets xcodebuild use a specified package authorization provider (keychain|netrc) + var packageAuthorizationProvider: String? { get } } public extension ScanfileProtocol { @@ -316,8 +319,9 @@ public extension ScanfileProtocol { var useSystemScm: Bool { return false } var numberOfRetries: Int { return 0 } var failBuild: Bool { return true } + var packageAuthorizationProvider: String? { return nil } } // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.135] +// FastlaneRunnerAPIVersion [0.9.139] diff --git a/fastlane/swift/ScreengrabfileProtocol.swift b/fastlane/swift/ScreengrabfileProtocol.swift index 17fe31dd..e3c386a6 100644 --- a/fastlane/swift/ScreengrabfileProtocol.swift +++ b/fastlane/swift/ScreengrabfileProtocol.swift @@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol { // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.125] +// FastlaneRunnerAPIVersion [0.9.129] diff --git a/fastlane/swift/SnapshotfileProtocol.swift b/fastlane/swift/SnapshotfileProtocol.swift index 356d00ed..6963e987 100644 --- a/fastlane/swift/SnapshotfileProtocol.swift +++ b/fastlane/swift/SnapshotfileProtocol.swift @@ -125,6 +125,9 @@ public protocol SnapshotfileProtocol: AnyObject { /// Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file var disablePackageAutomaticUpdates: Bool { get } + /// Lets xcodebuild use a specified package authorization provider (keychain|netrc) + var packageAuthorizationProvider: String? { get } + /// The testplan associated with the scheme that should be used for testing var testplan: String? { get } @@ -192,6 +195,7 @@ public extension SnapshotfileProtocol { var clonedSourcePackagesPath: String? { return nil } var skipPackageDependenciesResolution: Bool { return false } var disablePackageAutomaticUpdates: Bool { return false } + var packageAuthorizationProvider: String? { return nil } var testplan: String? { return nil } var onlyTesting: String? { return nil } var skipTesting: String? { return nil } @@ -204,4 +208,4 @@ public extension SnapshotfileProtocol { // Please don't remove the lines below // They are used to detect outdated files -// FastlaneRunnerAPIVersion [0.9.119] +// FastlaneRunnerAPIVersion [0.9.123]