Skip to content

Commit 858c6b6

Browse files
committed
Fix error with macOS builds not being completely signed
1 parent 7551eca commit 858c6b6

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

app/build.gradle.kts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import org.gradle.internal.jvm.Jvm
2-
import org.gradle.kotlin.dsl.support.zipTo
32
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
43
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
54
import org.jetbrains.compose.desktop.application.tasks.AbstractJPackageTask
65
import org.jetbrains.compose.internal.de.undercouch.gradle.tasks.download.Download
7-
import org.jetbrains.kotlin.fir.scopes.impl.overrides
86
import java.io.FileOutputStream
97
import java.util.zip.ZipEntry
108
import java.util.zip.ZipOutputStream
@@ -279,12 +277,13 @@ tasks.register<Zip>("zipDistributable"){
279277
}
280278

281279
afterEvaluate{
280+
// Override the default DMG task to use our custom one
282281
tasks.named("packageDmg").configure{
283282
dependsOn("packageCustomDmg")
284283
group = "compose desktop"
285284
actions = emptyList()
286285
}
287-
286+
// Override the default MSI task to use our custom one
288287
tasks.named("packageMsi").configure{
289288
dependsOn("packageCustomMsi")
290289
group = "compose desktop"
@@ -335,12 +334,26 @@ tasks.register("includeJdk") {
335334
?: error("Could not find include.jdk")
336335

337336
val isWindows = System.getProperty("os.name").lowercase().contains("win")
337+
val isMacOS = System.getProperty("os.name").lowercase().contains("mac")
338338
val command = if (isWindows) {
339339
listOf("xcopy", "/E", "/I", "/Q", jdk, target)
340340
} else {
341341
listOf("cp", "-a", jdk, target)
342342
}
343343
ProcessBuilder(command).inheritIO().start().waitFor()
344+
345+
if(org.gradle.internal.os.OperatingSystem.current().isMacOsX
346+
&& compose.desktop.application.nativeDistributions.macOS.notarization.appleID.isPresent
347+
) {
348+
// Sign the main binary again since changed it.
349+
val app = layout.buildDirectory.dir("compose/binaries").get().asFileTree.matching { include("**/*.app") }
350+
.files
351+
.firstOrNull()
352+
?.parentFile ?: error("Could not find Info.plist")
353+
val signCommand = listOf("codesign", "--timestamp", "--force", "--deep","--options=runtime", "--sign", "Developer ID Application", app.absolutePath)
354+
ProcessBuilder(signCommand).inheritIO().start().waitFor()
355+
}
356+
344357
}
345358
}
346359
tasks.register<Copy>("includeSharedAssets"){
@@ -526,6 +539,6 @@ afterEvaluate {
526539
}
527540
tasks.named("createDistributable").configure {
528541
dependsOn("signResources")
529-
finalizedBy( "includeJdk","setExecutablePermissions")
542+
finalizedBy( "includeJdk", "setExecutablePermissions")
530543
}
531544
}

0 commit comments

Comments
 (0)