Skip to content

Commit

Permalink
SwiftPackage Deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
TheArchitect123 committed Dec 11, 2024
1 parent ca0c889 commit 82a47e5
Show file tree
Hide file tree
Showing 11 changed files with 3,278 additions and 23 deletions.
21 changes: 21 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// swift-tools-version:5.3
import PackageDescription

let package = Package(
name: "KmpEssentials",
platforms: [
.iOS(.v11) // Adjust minimum deployment target
],
products: [
.library(
name: "KmpEssentials",
targets: ["KmpEssentials"]
)
],
targets: [
.binaryTarget(
name: "KmpEssentials",
path: "./swiftPackage/shared.xcframework"
)
]
)
75 changes: 52 additions & 23 deletions shared/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,41 @@ plugins {
id("kotlin-parcelize")
}

tasks.register("assembleXCFramework") {
group = "build"
dependsOn(
// "linkDebugFrameworkIosArm64",
// "linkDebugFrameworkIosX64",
// "linkDebugFrameworkIosSimulatorArm64",
"linkReleaseFrameworkIosArm64",
"linkReleaseFrameworkIosSimulatorArm64"
)

val xcFrameworkDir = layout.buildDirectory.dir("XCFrameworks/shared.xcframework")

doLast {
xcFrameworkDir.get().asFile.deleteRecursively()

exec {
commandLine(
"xcodebuild",
"-create-xcframework",

"-framework", "${buildDir}/bin/iosArm64/releaseFramework/shared.framework",
"-framework", "${buildDir}/bin/iosSimulatorArm64/releaseFramework/shared.framework",

// "-framework", "${buildDir}/bin/iosArm64/debugFramework/shared.framework",
// "-framework", "${buildDir}/bin/iosX64/debugFramework/shared.framework",
// "-framework", "${buildDir}/bin/iosSimulatorArm64/debugFramework/shared.framework",

"-output", xcFrameworkDir.get().asFile.absolutePath
)
}

println("XCFramework created at ${xcFrameworkDir.get().asFile.absolutePath}")
}
}

kotlin {
kotlin.applyDefaultHierarchyTemplate()
listOf(
Expand Down Expand Up @@ -80,54 +115,53 @@ kotlin {

// windows desktop target
val mingwMain by getting {
dependsOn(commonMain)

}
val mingwX64Main by getting {
dependsOn(mingwMain)

}

// linux
val linuxMain by getting {
dependsOn(commonMain)

}
val linuxX64Main by getting {
dependsOn(linuxMain)

}
val linuxArm64Main by getting {
dependsOn(linuxMain)

}

// watch os target
val watchosMain by getting {
dependsOn(commonMain)

}
val watchosX64Main by getting {
dependsOn(watchosMain)

}
val watchosArm32Main by getting {
dependsOn(watchosMain)

}
val watchosArm64Main by getting {
dependsOn(watchosMain)

}
val watchosSimulatorArm64Main by getting {
dependsOn(watchosMain)

}

// macos main
val macosMain by getting {
dependsOn(commonMain)

}
val macosX64Main by getting {
dependsOn(macosMain)

}
val macosArm64Main by getting {
dependsOn(macosMain)

}

// jvm
val jvmMain by getting {
dependsOn(commonMain)
dependencies{
implementation("net.java.dev.jna:jna:5.13.0")
implementation("org.quartz-scheduler:quartz:2.3.2")
Expand All @@ -136,21 +170,20 @@ kotlin {

// tvos targets
val tvosMain by getting {
dependsOn(commonMain)

}
val tvosX64Main by getting {
dependsOn(tvosMain)

}
val tvosArm64Main by getting {
dependsOn(tvosMain)

}
val tvosSimulatorArm64Main by getting {
dependsOn(tvosMain)

}

// android & iOS targets
val androidMain by getting {
dependsOn(commonMain)
dependencies {
implementation("com.google.android.play:review:2.0.2")
implementation("com.google.android.play:review-ktx:2.0.2")
Expand Down Expand Up @@ -178,10 +211,6 @@ kotlin {
val iosX64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by getting {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
dependencies {
implementation("dev.tmapps:konnection:1.4.1")
implementation("com.liftric:kvault:1.12.0")
Expand Down
43 changes: 43 additions & 0 deletions swiftPackage/shared.xcframework/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>shared.framework/shared</string>
<key>LibraryIdentifier</key>
<string>ios-arm64-simulator</string>
<key>LibraryPath</key>
<string>shared.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>shared.framework/shared</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>shared.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>
Loading

0 comments on commit 82a47e5

Please sign in to comment.