[英]How to generate xcframework with KMM; embedAndSignAppleFrameworkForXcode only generates framework
I've created a KMM project, and also an Xcode project with a build phase that calls ./gradlew embedAndSignAppleFrameworkForXcode
.我创建了一个 KMM 项目,还有一个 Xcode 项目,其构建阶段调用
./gradlew embedAndSignAppleFrameworkForXcode
。 It runs successfully, but generates a.framework, not an.xcframework;运行成功,但是生成的是.framework,不是.xcframework; and we really need the latter for modern Xcode.
对于现代 Xcode,我们确实需要后者。
Am i missing something?我错过了什么吗? I read that modern versions of kotlin can generate the xcframework directly, but i'm not sure how.
我读到 kotlin 的现代版本可以直接生成 xcframework,但我不确定如何生成。 Is there a gradle task for this?
是否有 gradle 任务?
Thanks so much:)非常感谢:)
According to Kdoctor, I have: Xcode 14.1 Android studio 2021.3 Kotlin Plugin: 213-1.7.20 Kotlin MM plugin: 0.5.1(213)-60根据 Kdoctor,我有: Xcode 14.1 Android studio 2021.3 Kotlin 插件:213-1.7.20 Kotlin MM 插件:0.5.1(213)-60
You should declare your XCFrameworks, then it'll register three tasks for you.您应该声明您的 XCFrameworks,然后它会为您注册三个任务。
assembleXCFramework
, assembleDebugXCFramework
, and assembleReleaseXCFramework
. assembleXCFramework
、 assembleDebugXCFramework
和assembleReleaseXCFramework
。
Here is an example of build.gradle:这是 build.gradle 的示例:
import org.jetbrains.kotlin.gradle.plugin.mpp.apple.XCFramework
plugins {
kotlin("multiplatform")
}
kotlin {
val xcf = XCFramework()
val iosTargets = listOf(iosX64(), iosArm64(), iosSimulatorArm64())
iosTargets.forEach {
it.binaries.framework {
baseName = "shared"
xcf.add(this)
}
}
}
For more information, visit kotlin docs .有关更多信息,请访问kotlin 文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.