Tung97 Hl
06/18/2023, 7:30 AMArkadii Ivanov
06/18/2023, 8:35 AMTung97 Hl
06/18/2023, 8:39 AMimport com.codingfeline.buildkonfig.compiler.FieldSpec.Type.BOOLEAN
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType.DEBUG
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType.RELEASE
plugins {
kotlin("multiplatform")
kotlin("native.cocoapods")
android("library")
ksp()
buildKonfig()
}
kotlin {
android()
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64(),
).forEach {
it.binaries {
framework {
export(Dependencies.ArkIvanov.MVIKotlin.mvi_kotlin_timetravel)
}
}
}
cocoapods {
version = Versions.state_holder_lib_vname
summary = "Shared state holder library to share model between android and iOS"
homepage = "Link to the Shared state holder Module homepage"
ios.deploymentTarget = "13"
podfile = project.file("../ios-pos-app/Podfile")
framework {
baseName = PkgName.shared_state_holder
}
xcodeConfigurationToNativeBuildType["Debug"] = DEBUG
xcodeConfigurationToNativeBuildType["Release"] = RELEASE
}
sourceSets {
all {
languageSettings.optIn("kotlin.experimental.ExperimentalObjCName")
}
val commonMain by getting {
dependencies {
with(Dependencies.JetBrains.Coroutines) {
implementation(coroutine_core)
}
implementation(Dependencies.JetBrains.Kotlin.kotlinx_datetime)
implementation(project(PkgName.pos_sdk.toProjectPath()))
implementation(project(PkgName.common.toProjectPath()))
with(Dependencies.ArkIvanov.MVIKotlin) {
implementation(mvi_kotlin)
implementation(mvi_kotlin_main)
api(mvi_kotlin_timetravel)
implementation(mvi_kotlin_extensions_coroutine)
}
implementation(Dependencies.AndroidX.Core.data_store)
}
}
val androidMain by getting
val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
}
}
}
android {
namespace = PkgName.sharedStateHolder
compileSdk = Versions.android_compile_sdk_version
defaultConfig {
minSdk = Versions.android_min_sdk_version
}
}
buildkonfig {
packageName = PkgName.sharedStateHolder
objectName = "StoreConfig"
//Local host config, default (type, name, value)
//Change flavor in root gradle.properties
defaultConfigs {
buildConfigField(BOOLEAN, "DEBUG", "true")
}
defaultConfigs("product") {
buildConfigField(BOOLEAN, "DEBUG", "false")
}
defaultConfigs("staging") {
buildConfigField(BOOLEAN, "DEBUG", "true")
}
}
Arkadii Ivanov
06/18/2023, 8:46 AMmvikotlin-timetravel
, but in the Swift code you also use DataStoreKt
. It looks like XCode uses another Gradle module, not this one.
Another idea, it could be a bug in Cocoapods plugin. There were multiple occurrences when some dependencies are not visible in Xcode. I recommend switching to Regular Framework if possible (e.g. if you are not using Pod dependencies in Kotlin).Arkadii Ivanov
06/18/2023, 8:52 AMTung97 Hl
06/18/2023, 8:52 AMArkadii Ivanov
06/18/2023, 8:53 AMArkadii Ivanov
06/18/2023, 8:54 AMTung97 Hl
06/18/2023, 8:56 AMTung97 Hl
06/18/2023, 9:31 AMArkadii Ivanov
06/18/2023, 9:38 AMTung97 Hl
06/18/2023, 10:00 AMTung97 Hl
06/18/2023, 10:04 AM./gradlew :mvikotlin-timetravel-client:app-desktop:run
but package to dmg then install will go errorArkadii Ivanov
06/18/2023, 10:18 AMArkadii Ivanov
06/18/2023, 10:18 AMTung97 Hl
06/18/2023, 12:45 PMArkadii Ivanov
06/25/2023, 2:19 PMArkadii Ivanov
06/25/2023, 2:25 PMTung97 Hl
06/26/2023, 5:04 PMTung97 Hl
06/26/2023, 5:05 PM