我正在创建一个 kotlin 多平台库,它在
commonMain
中只有 kotlin 代码,在 iOS main 和 androidMain 中没有任何内容,
并且正在使用 GithubPackages 来分发它,使用命令行
./gradlew publish
,我将其发布到 GitHub 包,但它无法生成 iosSimulatorArm64Main, iosSimulatorArm64Test, iosArm64Main, iosArm64Test, iosX64Test
所需的资源,该库在 Android 项目中运行良好,但根本无法运行与 KMM 项目
我的图书馆
build.gradle.kts
看起来像这样
plugins {
alias(libs.plugins.kotlinMultiplatform)
alias(libs.plugins.androidLibrary)
`maven-publish`
}
group = "in.getswipe"
version = "0.0.5"
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class)
kotlin {
targetHierarchy.default()
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = "1.8"
}
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework {
baseName = "in.getswipe"
}
}
sourceSets {
val commonMain by getting {
dependencies {
//put your multiplatform dependencies here
}
}
val commonTest by getting {
dependencies {
implementation(libs.kotlin.test)
}
}
}
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/suraj/calculation-engine")
credentials {
username = project.findProperty("gpr.user") as String?
password = project.findProperty("gpr.token") as String?
}
}
}
}
}
android {
namespace = "get.calculation_engine"
compileSdk = 34
defaultConfig {
minSdk = 24
}
}
我的 KMM 项目的
build.gradle.kts
看起来像这样
您在什么机器上构建?为了构建 Mac 工件,构建需要在 Mac 计算机上进行。否则,这些任务将被跳过。
对于我自己的项目,我使用 GitHub 工作流程,利用 mac 目标来构建 iOS 工件,并利用 ubuntu 目标来构建 Linux 和 Windows。 (此处相关工作流程示例)