:composeApp:iosArm64Main: cinterop file: /Users/P36039/Desktop/Uygulamalar/MyProjects/RouteAlarm/composeApp/build/libs/composeApp-iosArm64Cinterop-notificationMain.klib does not exist
:composeApp:iosSimulatorArm64Main: cinterop file: /Users/P36039/Desktop/Uygulamalar/MyProjects/RouteAlarm/composeApp/build/libs/composeApp-iosSimulatorArm64Cinterop-notificationMain.klib does not exist
:composeApp:iosSimulatorArm64Test: cinterop file: /Users/P36039/Desktop/Uygulamalar/MyProjects/RouteAlarm/composeApp/build/libs/composeApp-iosSimulatorArm64Cinterop-notificationMain.klib does not exist
:composeApp:iosX64Main: cinterop file: /Users/P36039/Desktop/Uygulamalar/MyProjects/RouteAlarm/composeApp/build/libs/composeApp-iosX64Cinterop-notificationMain.klib does not exist
:composeApp:iosX64Test: cinterop file: /Users/P36039/Desktop/Uygulamalar/MyProjects/RouteAlarm/composeApp/build/libs/composeApp-iosX64Cinterop-notificationMain.klib does not exist
в composeapp/build.gradle.kts :
swiftklib {
create("notification") {
path = file("../iosApp/iosApp/notification")
packageName("com.yusufteker.notification")
}
}
Мой класс Swift (внутри iosapp/iosapp/notification/notificationmanager.swift):
import Foundation
import UserNotifications
@objc public class NotificationManager: NSObject, UNUserNotificationCenterDelegate {
@objc public static let shared = NotificationManager()
@objc public func requestAuthorization() { ... }
@objc public func showLocalNotification(id: String, title: String, body: String, seconds: Double) { ... }
@objc public func cancelLocalNotification(id: String) { ... }
@objc public func userNotificationCenter(_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void) {
...
}
}
< /code>
build.gradle.kts composeapp < /p>
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrains.kotlin.serialization)
alias(libs.plugins.ksp)
alias(libs.plugins.room)
alias(libs.plugins.swiftklib)
}
swiftklib {
create("notification") {
path = file("../iosApp/iosApp/notification")
packageName("com.yusufteker.notification")
}
}
kotlin {
androidTarget {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}
room {
schemaDirectory("$projectDir/schemas")
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
iosTarget.compilations {
val main by getting {
cinterops {
create("notification")
}
}
}
}
...
< /code>
build.gradle.kts (myApp) < /p>
plugins {
// this is necessary to avoid the plugins to be loaded multiple times
// in each subproject's classloader
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.compose.compiler) apply false
alias(libs.plugins.jetbrainsCompose) apply false
alias(libs.plugins.kotlinMultiplatform) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.room) apply false
alias(libs.plugins.swiftklib) apply false
}
< /code>
libs.version.toml
version
agp = "8.10.0"
android-compileSdk = "35"
android-minSdk = "26"
android-targetSdk = "35"
androidx-activityCompose = "1.9.3"
androidx-appcompat = "1.7.0"
androidx-constraintlayout = "2.2.0"
androidx-core-ktx = "1.15.0"
androidx-espresso-core = "3.6.1"
androidx-lifecycle = "2.8.3"
androidx-material = "1.12.0"
androidx-test-junit = "1.2.1"
compose-plugin = "1.7.0"
junit = "4.13.2"
kotlin = "2.1.20"
kotlinx-coroutines = "1.9.0"
navigationCompose = "2.8.0-alpha10"
kotlinSerialization = "1.7.3"
koin = "4.0.4"
ktor = "3.0.0"
coil3 = "3.0.0-rc02"
ksp = "2.1.20-2.0.1"
sqlite = "2.5.0-alpha11"
room = "2.7.0-alpha11"
play-services-location = "21.0.1"
google-maps = "18.2.0"
maps-compose = "2.11.4"
places = "3.3.0"
accompanist = "0.36.0"
compottie = "2.0.0-rc04"
swiftklib = "0.6.4"
plugins
swiftklib = { id = "io.github.ttypic.swiftklib", version.ref = "swiftklib" }
< /code>
settings.gradle
rootProject.name = "RouteAlarm"
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
pluginManagement {
repositories {
google {
mavenContent {
includeGroupAndSubgroups("androidx")
includeGroupAndSubgroups("com.android")
includeGroupAndSubgroups("com.google")
}
}
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositories {
google {
mavenContent {
includeGroupAndSubgroups("androidx")
includeGroupAndSubgroups("com.android")
includeGroupAndSubgroups("com.google")
}
}
mavenCentral()
}
}
include(":composeApp")
< /code>
Свойства Gradle < /p>
#Kotlin
kotlin.code.style=official
kotlin.daemon.jvmargs=-Xmx2048M
#Gradle
org.gradle.jvmargs=-Xmx2048M -Dfile.encoding=UTF-8
#Android
android.nonTransitiveRClass=true
android.useAndroidX=true
kotlin.mpp.enableCInteropCommonization=true
Подробнее здесь: https://stackoverflow.com/questions/796 ... to-resolve
Мобильная версия