diff --git a/Sources/XcodeGraph/Models/RunAction.swift b/Sources/XcodeGraph/Models/RunAction.swift index a0c2e092..6515d5f6 100644 --- a/Sources/XcodeGraph/Models/RunAction.swift +++ b/Sources/XcodeGraph/Models/RunAction.swift @@ -17,6 +17,7 @@ public struct RunAction: Equatable, Codable, Sendable { public let metalOptions: MetalOptions? public let expandVariableFromTarget: TargetReference? public let launchStyle: LaunchStyle + public let appClipInvocationURL: URL? // MARK: - Init @@ -33,7 +34,8 @@ public struct RunAction: Equatable, Codable, Sendable { diagnosticsOptions: SchemeDiagnosticsOptions, metalOptions: MetalOptions? = nil, expandVariableFromTarget: TargetReference? = nil, - launchStyle: LaunchStyle = .automatically + launchStyle: LaunchStyle = .automatically, + appClipInvocationURL: URL? = nil ) { self.configurationName = configurationName self.attachDebugger = attachDebugger @@ -48,6 +50,7 @@ public struct RunAction: Equatable, Codable, Sendable { self.metalOptions = metalOptions self.expandVariableFromTarget = expandVariableFromTarget self.launchStyle = launchStyle + self.appClipInvocationURL = appClipInvocationURL } } @@ -72,7 +75,8 @@ public struct RunAction: Equatable, Codable, Sendable { apiValidation: true ), expandVariableFromTarget: TargetReference? = nil, - launchStyle: LaunchStyle = .automatically + launchStyle: LaunchStyle = .automatically, + appClipInvocationURL: URL? = nil ) -> RunAction { RunAction( configurationName: configurationName, @@ -87,7 +91,8 @@ public struct RunAction: Equatable, Codable, Sendable { diagnosticsOptions: diagnosticsOptions, metalOptions: metalOptions, expandVariableFromTarget: expandVariableFromTarget, - launchStyle: launchStyle + launchStyle: launchStyle, + appClipInvocationURL: appClipInvocationURL ) } } diff --git a/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift b/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift index 6d84897c..70fc0687 100644 --- a/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift +++ b/Sources/XcodeGraphMapper/Mappers/Schemes/XCSchemeMapper.swift @@ -218,7 +218,8 @@ struct XCSchemeMapper: SchemeMapping { filePath: nil, arguments: arguments, options: RunActionOptions(), - diagnosticsOptions: diagnosticsOptions + diagnosticsOptions: diagnosticsOptions, + appClipInvocationURL: action.appClipInvocationURLString.flatMap { URL(string: $0) } ) } diff --git a/Tests/XcodeGraphTests/Models/RunActionTests.swift b/Tests/XcodeGraphTests/Models/RunActionTests.swift index aa68ca45..0b8b3d67 100644 --- a/Tests/XcodeGraphTests/Models/RunActionTests.swift +++ b/Tests/XcodeGraphTests/Models/RunActionTests.swift @@ -31,7 +31,8 @@ final class RunActionTests: XCTestCase { diagnosticsOptions: SchemeDiagnosticsOptions( mainThreadCheckerEnabled: true, performanceAntipatternCheckerEnabled: true - ) + ), + appClipInvocationURL: URL(string: "https://app-clips-url.com/example") ) // Then