electrolobzik
12/17/2023, 7:52 PMmoko
with KMM and iOS? I have this issue https://kotlinlang.slack.com/archives/C3PQML5NU/p1702841258546119 and will appreciate any helpiXPert12
12/18/2023, 6:50 AMelectrolobzik
12/18/2023, 9:09 AMimport org.jetbrains.kotlin.gradle.plugin.mpp.AbstractExecutable
import org.jetbrains.kotlin.gradle.plugin.mpp.NativeBinary
import org.jetbrains.kotlin.gradle.tasks.KotlinNativeLink
import org.jetbrains.kotlin.library.impl.KotlinLibraryLayoutImpl
import java.io.File
import java.io.FileFilter
import org.jetbrains.kotlin.konan.file.File as KonanFile
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsCompose)
id("dev.icerock.mobile.multiplatform-resources")
}
kotlin {
targetHierarchy.default() // <https://github.com/icerockdev/moko-resources/issues/383>
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
}
sourceSets {
androidMain {
dependsOn(commonMain.get())
kotlin.srcDir("build/generated/moko/androidMain/src")
dependencies {
implementation(libs.compose.ui.tooling.preview)
implementation(libs.androidx.activity.compose)
}
}
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
// @OptIn(ExperimentalComposeLibrary::class)
// implementation(compose.components.resources)
api(libs.moko.resources)
api(libs.moko.resources.compose) // for compose multiplatform
// testImplementation("dev.icerock.moko:resources-test:0.23.0")
}
}
}
android {
namespace = "com.tagbeam"
compileSdk = libs.versions.compileSdkVersion.get().toInt()
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
sourceSets["main"].res.srcDirs("src/androidMain/res")
sourceSets["main"].resources.srcDirs("src/commonMain/resources")
defaultConfig {
applicationId = "com.tagbeam"
minSdk = libs.versions.minSdkVersion.get().toInt()
targetSdk = libs.versions.targetSdkVersion.get().toInt()
versionCode = 1
versionName = "1.0"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
dependencies {
debugImplementation(libs.compose.ui.tooling)
}
}
multiplatformResources {
multiplatformResourcesPackage = "com.tagbeam" // required
// multiplatformResourcesClassName = "Res" // optional, default MR
// multiplatformResourcesVisibility = MRVisibility.Internal // optional, default Public
iosBaseLocalizationRegion = "en" // optional, default "en"
// multiplatformResourcesSourceSet = "commonClientMain" // optional, default "commonMain"
}
electrolobzik
12/18/2023, 9:10 AMiXPert12
12/18/2023, 9:23 AMelectrolobzik
12/18/2023, 9:27 AMelectrolobzik
12/18/2023, 9:28 AMiXPert12
12/18/2023, 9:29 AMelectrolobzik
12/18/2023, 9:42 AMBuild file '/Users/electrolobzik/workspace/Projects/15SecOfFame/App/TagBeam/composeApp/build.gradle.kts' line: 21
Build was configured to prefer settings repositories over project repositories but repository 'ivy' was added by build file 'composeApp/build.gradle.kts'
the line 21 is this one:
listOf(
>>> iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
}
electrolobzik
12/18/2023, 9:44 AMplugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsCompose)
id("dev.icerock.mobile.multiplatform-resources")
}
kotlin {
targetHierarchy.default() // <https://github.com/icerockdev/moko-resources/issues/383>
android {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "ComposeApp"
isStatic = true
}
}
sourceSets {
android {
// dependsOn(commonMain.get())
// kotlin.srcDir("build/generated/moko/androidMain/src")
dependencies {
implementation(libs.compose.ui.tooling.preview)
implementation(libs.androidx.activity.compose)
}
}
commonMain {
dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.ui)
// @OptIn(ExperimentalComposeLibrary::class)
// implementation(compose.components.resources)
api(libs.moko.resources)
api(libs.moko.resources.compose) // for compose multiplatform
// testImplementation("dev.icerock.moko:resources-test:0.23.0")
}
}
}
}
android {
namespace = "com.tagbeam"
compileSdk = libs.versions.compileSdkVersion.get().toInt()
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
sourceSets["main"].res.srcDirs("src/androidMain/res")
sourceSets["main"].resources.srcDirs("src/commonMain/resources")
defaultConfig {
applicationId = "com.tagbeam"
minSdk = libs.versions.minSdkVersion.get().toInt()
targetSdk = libs.versions.targetSdkVersion.get().toInt()
versionCode = 1
versionName = "1.0"
}
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
dependencies {
debugImplementation(libs.compose.ui.tooling)
}
}
multiplatformResources {
multiplatformResourcesPackage = "com.tagbeam" // required
// multiplatformResourcesClassName = "Res" // optional, default MR
// multiplatformResourcesVisibility = MRVisibility.Internal // optional, default Public
iosBaseLocalizationRegion = "en" // optional, default "en"
// multiplatformResourcesSourceSet = "commonClientMain" // optional, default "commonMain"
}
electrolobzik
12/18/2023, 11:08 AMUncaught Kotlin exception: kotlin.IllegalArgumentException: bundle with identifier <http://com.tagbeam.MR|com.tagbeam.MR> not found
iXPert12
12/18/2023, 11:20 AMiXPert12
12/18/2023, 11:26 AMelectrolobzik
12/18/2023, 11:31 AMisStatic
setting do and do you know why it is turned on by default in the Wizard project? As I see from documentation it is false by default since Kotlin 1.8.0. Is this Template in the link newer/updated than the project from the KMM Wizard?iXPert12
12/18/2023, 11:36 AMelectrolobzik
12/18/2023, 11:37 AMelectrolobzik
12/18/2023, 11:42 AMerror: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld invocation reported errors
The /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld command returned non-zero exit code: 1.
output:
ld: unknown options: -ios_simulator_version_min -sdk_version
error: Compilation finished with errors
iXPert12
12/18/2023, 11:57 AM