Codesign all the crafted libraries with mac crafter
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Thu, 20 Jun 2024 06:27:25 +0000 (14:27 +0800)
committerClaudio Cambra <developer@claudiocambra.com>
Mon, 8 Jul 2024 07:41:45 +0000 (15:41 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
admin/osx/mac-crafter/Sources/main.swift

index 9ee2e06173830ed198d252f2c2da69b138328377..a282d7ae4a1d30a3dc4d7be9e2b131adf06eb9bf 100644 (file)
@@ -24,6 +24,8 @@ struct MacCrafter: ParsableCommand {
         case failedEnumeration(String)
     }
 
+    @Argument var codeSignIdentity: String
+
     mutating func run() throws {
         print("Configuring build tooling.")
 
@@ -66,6 +68,16 @@ struct MacCrafter: ParsableCommand {
         print("Crafting Nextcloud Desktop Client dependencies...")
         shell("\(craftCommand) --install-deps nextcloud-client")
 
+        print("Code-signing Nextcloud Desktop Client libraries and frameworks...")
+
+        let craftLibDir = "\(currentDir)/\(craftTarget)/lib"
+        let craftLibs = try fm.contentsOfDirectory(atPath: craftLibDir)
+        for lib in craftLibs {
+            let libPath = "\(craftLibDir)/\(lib)"
+            guard lib.hasSuffix(".dylib") || lib.hasSuffix(".framework") else { continue }
+            try codesign(identity: codeSignIdentity, path: libPath)
+        }
+
         print("Crafting Nextcloud Desktop Client...")
         shell("\(craftCommand) --src-dir \(repoRootDir) nextcloud-client")
     }