-
-
Save benkoska/a0ad9f52861e6ea22223714ef8422ad5 to your computer and use it in GitHub Desktop.
Better iOS Build Script for Kotlin Multiplatform
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tasks { | |
register("buildPackafeForDebug", org.jetbrains.kotlin.gradle.tasks.FatFrameworkTask::class) { | |
baseName = "SharedCode" | |
from( | |
iosArm64().binaries.getFramework("SharedCode", "Debug"), | |
iosX64().binaries.getFramework("SharedCode", "Debug") | |
) | |
destinationDir = buildDir.resolve("xcode-frameworks") | |
group = "Universal framework" | |
description = "Builds a universal (fat) debug framework" | |
dependsOn("linkSharedCodeDebugFrameworkIosArm64") | |
dependsOn("linkSharedCodeDebugFrameworkIosX64") | |
} | |
register("buildPackageForRelease", Sync::class) { | |
group = "build" | |
val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator" | |
val targetName = "ios" + if (sdkName.startsWith("iphoneos")) "Arm64" else "X64" | |
val framework = kotlin.targets.getByName<KotlinNativeTarget>(targetName).binaries.getFramework("Release") | |
inputs.property("mode", "Release") | |
dependsOn(framework.linkTask) | |
val targetDir = File(buildDir, "xcode-frameworks") | |
from({ framework.outputDirectory }) | |
into(targetDir) | |
} | |
register("universalFramework") { | |
val mode = System.getenv("CONFIGURATION") | |
if (mode == "Debug") { | |
dependsOn("buildPackafeForDebug") | |
} else { | |
dependsOn("buildPackageForRelease") | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment