gpt4 book ai didi

ios - Kotlin Multiplatform 中 iOS 应用程序的不同架构

转载 作者:行者123 更新时间:2023-12-05 02:46:08 25 4
gpt4 key购买 nike

我正在开发一个 KMM 项目,我需要为我的项目创建不同的架构,例如(开发、生产、QA)我可以在 android 部分轻松完成,但我无法在 iOS 中创建相同的架构。我尝试创建我们通常在 iOS 应用程序中创建的不同模式,但我的应用程序崩溃,错误定位到我们在 android studio 中的 packForXcode 任务。

崩溃时出错:- 没有枚举常量 org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType.DEVELOPMENT 我在这里创建了一个名为 development 的自定义模式/p>

这个错误指向

val packForXcode by tasks.creating(Sync::class) {
group = "build"
val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
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(mode)
inputs.property("mode", mode)
dependsOn(framework.linkTask)
val targetDir = File(buildDir, "xcode-frameworks")
from({ framework.outputDirectory })
into(targetDir)
}

现在进入 binaries 我可以看到有两个 NativeBuildTargets DEBUGRELEASE 所以我可以运行这两者都有,但如何为我的 iOS 应用程序创建自定义架构?

最佳答案

问题是由包含 "configuration" 值的 mode 变量引起的,从 Kotlin/Native 编译器的角度来看,这不是合适的构建类型(参见一些详细信息在 documentation 中)。为避免这种情况,应重新定义确定 mode 值的函数。例如,它可能是这样的:

val mode = if (System.getenv("CONFIGURATION") != "release") "DEBUG" else System.getenv("CONFIGURATION")

关于ios - Kotlin Multiplatform 中 iOS 应用程序的不同架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65624300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com