From 5d34fab1b02c6c20586fdcb64003e1d7e049dee8 Mon Sep 17 00:00:00 2001 From: Tamar Milchtaich Lavi Date: Wed, 12 Mar 2025 16:41:46 +0200 Subject: [PATCH 1/4] feat(PBXFileReference): add expectedSignature property --- .../XcodeProj/Objects/Files/PBXFileReference.swift | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Sources/XcodeProj/Objects/Files/PBXFileReference.swift b/Sources/XcodeProj/Objects/Files/PBXFileReference.swift index 9595e2536..f596f32cc 100644 --- a/Sources/XcodeProj/Objects/Files/PBXFileReference.swift +++ b/Sources/XcodeProj/Objects/Files/PBXFileReference.swift @@ -15,6 +15,9 @@ public final class PBXFileReference: PBXFileElement { /// Derived file type. For a file named "foo.swift" this value would be "sourcecode.swift" public var lastKnownFileType: String? + /// The XCFramework's expected code signature. `nil` if not an XCFramework reference or if the XCFramework is not signed. + public var expectedSignature: String? + /// Line ending type for the file public var lineEnding: UInt? @@ -44,6 +47,7 @@ public final class PBXFileReference: PBXFileElement { /// - indentWidth: the number of positions to indent blocks of code /// - tabWidth: the visual width of tab characters /// - lineEnding: the line ending type for the file. + /// - expectedSignature: code signature for signed XCFrameworks, `nil` otherwise. /// - languageSpecificationIdentifier: legacy programming language identifier. /// - xcLanguageSpecificationIdentifier: the programming language identifier. /// - plistStructureDefinitionIdentifier: the plist organizational family identifier. @@ -59,6 +63,7 @@ public final class PBXFileReference: PBXFileElement { indentWidth: UInt? = nil, tabWidth: UInt? = nil, lineEnding: UInt? = nil, + expectedSignature: String? = nil, languageSpecificationIdentifier: String? = nil, xcLanguageSpecificationIdentifier: String? = nil, plistStructureDefinitionIdentifier: String? = nil) { @@ -66,6 +71,7 @@ public final class PBXFileReference: PBXFileElement { self.explicitFileType = explicitFileType self.lastKnownFileType = lastKnownFileType self.lineEnding = lineEnding + self.expectedSignature = expectedSignature self.languageSpecificationIdentifier = languageSpecificationIdentifier self.xcLanguageSpecificationIdentifier = xcLanguageSpecificationIdentifier self.plistStructureDefinitionIdentifier = plistStructureDefinitionIdentifier @@ -86,6 +92,7 @@ public final class PBXFileReference: PBXFileElement { case explicitFileType case lastKnownFileType case lineEnding + case expectedSignature case languageSpecificationIdentifier case xcLanguageSpecificationIdentifier case plistStructureDefinitionIdentifier @@ -97,6 +104,7 @@ public final class PBXFileReference: PBXFileElement { explicitFileType = try container.decodeIfPresent(.explicitFileType) lastKnownFileType = try container.decodeIfPresent(.lastKnownFileType) lineEnding = try container.decodeIntIfPresent(.lineEnding) + expectedSignature = try container.decodeIfPresent(.expectedSignature) languageSpecificationIdentifier = try container.decodeIfPresent(.languageSpecificationIdentifier) xcLanguageSpecificationIdentifier = try container.decodeIfPresent(.xcLanguageSpecificationIdentifier) plistStructureDefinitionIdentifier = try container.decodeIfPresent(.plistStructureDefinitionIdentifier) @@ -122,6 +130,9 @@ public final class PBXFileReference: PBXFileElement { if let lineEnding { dictionary["lineEnding"] = .string(CommentedString("\(lineEnding)")) } + if let expectedSignature { + dictionary["expectedSignature"] = .string(CommentedString(expectedSignature)) + } if let languageSpecificationIdentifier { dictionary["languageSpecificationIdentifier"] = .string(CommentedString(languageSpecificationIdentifier)) } From a55fbada2ee1c1c59a63bd301f26293f07f45856 Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 30 Apr 2025 10:20:27 +0200 Subject: [PATCH 2/4] Set up Swift with the v3 of the action, which uses swiftly under the hood --- .github/workflows/xcodeproj.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xcodeproj.yml b/.github/workflows/xcodeproj.yml index 591f2df6c..19555635c 100644 --- a/.github/workflows/xcodeproj.yml +++ b/.github/workflows/xcodeproj.yml @@ -30,7 +30,7 @@ jobs: steps: - uses: actions/checkout@v3 - uses: jdx/mise-action@v2 - - uses: swift-actions/setup-swift@v2 + - uses: swift-actions/setup-swift@v3 with: swift-version: "6.0.2" - name: Build @@ -50,7 +50,7 @@ jobs: steps: - uses: actions/checkout@v3 - uses: jdx/mise-action@v2 - - uses: swift-actions/setup-swift@v2 + - uses: swift-actions/setup-swift@v3 with: swift-version: "6.0.2" - run: | From ca86ec30003175e71eb0b79b1d5ca50345d29b1f Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 30 Apr 2025 10:22:42 +0200 Subject: [PATCH 3/4] Pass the specific commit since the changes haven't been released yet --- .github/workflows/xcodeproj.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/xcodeproj.yml b/.github/workflows/xcodeproj.yml index 19555635c..ac7023531 100644 --- a/.github/workflows/xcodeproj.yml +++ b/.github/workflows/xcodeproj.yml @@ -30,7 +30,7 @@ jobs: steps: - uses: actions/checkout@v3 - uses: jdx/mise-action@v2 - - uses: swift-actions/setup-swift@v3 + - uses: swift-actions/setup-swift@7d6348b84c07b33515ee21ebc40bbf974cc19d40 with: swift-version: "6.0.2" - name: Build @@ -50,7 +50,7 @@ jobs: steps: - uses: actions/checkout@v3 - uses: jdx/mise-action@v2 - - uses: swift-actions/setup-swift@v3 + - uses: swift-actions/setup-swift@7d6348b84c07b33515ee21ebc40bbf974cc19d40 with: swift-version: "6.0.2" - run: | From 2f37f00786a4eb7e97070665d0ca6a4ddb1a3bc6 Mon Sep 17 00:00:00 2001 From: Pedro Date: Wed, 30 Apr 2025 10:29:16 +0200 Subject: [PATCH 4/4] Use Mise to install Swift --- .github/workflows/xcodeproj.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/xcodeproj.yml b/.github/workflows/xcodeproj.yml index ac7023531..14bdb8601 100644 --- a/.github/workflows/xcodeproj.yml +++ b/.github/workflows/xcodeproj.yml @@ -30,9 +30,7 @@ jobs: steps: - uses: actions/checkout@v3 - uses: jdx/mise-action@v2 - - uses: swift-actions/setup-swift@7d6348b84c07b33515ee21ebc40bbf974cc19d40 - with: - swift-version: "6.0.2" + - run: mise use swift@6.0.2 - name: Build run: swift build --configuration release test: @@ -50,9 +48,7 @@ jobs: steps: - uses: actions/checkout@v3 - uses: jdx/mise-action@v2 - - uses: swift-actions/setup-swift@7d6348b84c07b33515ee21ebc40bbf974cc19d40 - with: - swift-version: "6.0.2" + - run: mise use swift@6.0.2 - run: | git config --global user.email 'xcodeproj@tuist.dev' git config --global user.name 'xcodeproj'