iOS Cocoaods框架未在Kotlin Multiplatform项目中生成

发布于 2025-02-01 19:19:52 字数 3914 浏览 4 评论 0原文

我正在创建KMM库。我想创建一个Cocoapods框架,但是当我尝试构建项目时,框架不会生成。我尝试了清洁 project和构建。我的Cocoapods根本没有在构建文件夹中生成。我没有明白为什么这不起作用。我正在添加我的 build 文件。

build.gradle.kts

plugins {
    kotlin("multiplatform") version "1.6.21"
    kotlin("native.cocoapods") version "1.6.21"
    id("com.android.library")
    id("org.jetbrains.dokka") version "1.6.10"
    id("org.jetbrains.kotlin.plugin.serialization") version "1.6.21"
    id("maven-publish")
}

val libraryVersion = "0.0.1"
var libraryGroup = "com.vivek"
var libraryArtifactId = "kmm-module"
var libraryUri = uri("https://maven.pkg.github.com/vivek/KotlinMultiplatformMobile")

repositories {
    google()
    mavenCentral()
}

kotlin {
    android {
        publishLibraryVariants("release", "debug")
    }

    cocoapods {
        version = libraryVersion
        summary = "Some description for a Kotlin/Native module"
        homepage = ""
        ios.deploymentTarget = "13.0"
        name = "VivekKmmPod"
        framework {
            baseName = "VivekFramework"
            isStatic = false
        }
    }

    iosX64()
    iosArm64()
    iosSimulatorArm64()

    sourceSets {
        val ktorVersion = "2.0.0"
        val commonMain by getting {
            dependencies {
                implementation("io.ktor:ktor-client-core:$ktorVersion")
                implementation("io.ktor:ktor-client-logging:$ktorVersion")
                implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
                implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
                implementation("io.ktor:ktor-client-auth:$ktorVersion")
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.2")
                implementation("io.insert-koin:koin-core:3.2.0")
            }
        }
        val androidMain by getting {
            dependencies {
                implementation("io.ktor:ktor-client-okhttp:$ktorVersion")
                implementation("io.ktor:ktor-client-logging-jvm:$ktorVersion")
            }
        }

        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)
            dependencies {
                implementation("io.ktor:ktor-client-darwin:$ktorVersion")
            }
        }
    }
}

android {
    compileSdk = 21
    sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
    defaultConfig {
        minSdk = 21
        targetSdk = 31
    }
}

tasks {
    create<Jar>("javadocJar") {
        val dokkaHtml by getting(org.jetbrains.dokka.gradle.DokkaTask::class)
        dependsOn(dokkaHtml)
        archiveClassifier.set("javadoc")
        from(dokkaHtml.outputDirectory)
    }
}

publishing {
    publications {
        group = libraryGroup
        publications.withType<MavenPublication> {
            artifactId.toLowerCase()
            groupId = libraryGroup
            artifactId = libraryArtifactId
            version = libraryVersion

            artifact(tasks["javadocJar"])
        }

        repositories {
            maven {
                url = libraryUri
                credentials {
                    username = (System.getenv("GITHUB_USER") ?: project.properties["GITHUB_USER"]).toString()
                    password = (System.getenv("GITHUB_PERSONAL_ACCESS_TOKEN") ?: project.properties["GITHUB_PERSONAL_ACCESS_TOKEN"]).toString()
                }
            }
        }
    }
}

,您可以看到构建文件夹中没有生成的框架。

I am creating KMM library. I want to create a cocoapods framework, but when I tried to build my project, the framework is not generating. I tried clean project and build again. My cocoapods is not generating the at all in build folder. I didn't get why this is not working. I am adding my build file.

build.gradle.kts

plugins {
    kotlin("multiplatform") version "1.6.21"
    kotlin("native.cocoapods") version "1.6.21"
    id("com.android.library")
    id("org.jetbrains.dokka") version "1.6.10"
    id("org.jetbrains.kotlin.plugin.serialization") version "1.6.21"
    id("maven-publish")
}

val libraryVersion = "0.0.1"
var libraryGroup = "com.vivek"
var libraryArtifactId = "kmm-module"
var libraryUri = uri("https://maven.pkg.github.com/vivek/KotlinMultiplatformMobile")

repositories {
    google()
    mavenCentral()
}

kotlin {
    android {
        publishLibraryVariants("release", "debug")
    }

    cocoapods {
        version = libraryVersion
        summary = "Some description for a Kotlin/Native module"
        homepage = ""
        ios.deploymentTarget = "13.0"
        name = "VivekKmmPod"
        framework {
            baseName = "VivekFramework"
            isStatic = false
        }
    }

    iosX64()
    iosArm64()
    iosSimulatorArm64()

    sourceSets {
        val ktorVersion = "2.0.0"
        val commonMain by getting {
            dependencies {
                implementation("io.ktor:ktor-client-core:$ktorVersion")
                implementation("io.ktor:ktor-client-logging:$ktorVersion")
                implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion")
                implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
                implementation("io.ktor:ktor-client-auth:$ktorVersion")
                implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.3.2")
                implementation("io.insert-koin:koin-core:3.2.0")
            }
        }
        val androidMain by getting {
            dependencies {
                implementation("io.ktor:ktor-client-okhttp:$ktorVersion")
                implementation("io.ktor:ktor-client-logging-jvm:$ktorVersion")
            }
        }

        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)
            dependencies {
                implementation("io.ktor:ktor-client-darwin:$ktorVersion")
            }
        }
    }
}

android {
    compileSdk = 21
    sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
    defaultConfig {
        minSdk = 21
        targetSdk = 31
    }
}

tasks {
    create<Jar>("javadocJar") {
        val dokkaHtml by getting(org.jetbrains.dokka.gradle.DokkaTask::class)
        dependsOn(dokkaHtml)
        archiveClassifier.set("javadoc")
        from(dokkaHtml.outputDirectory)
    }
}

publishing {
    publications {
        group = libraryGroup
        publications.withType<MavenPublication> {
            artifactId.toLowerCase()
            groupId = libraryGroup
            artifactId = libraryArtifactId
            version = libraryVersion

            artifact(tasks["javadocJar"])
        }

        repositories {
            maven {
                url = libraryUri
                credentials {
                    username = (System.getenv("GITHUB_USER") ?: project.properties["GITHUB_USER"]).toString()
                    password = (System.getenv("GITHUB_PERSONAL_ACCESS_TOKEN") ?: project.properties["GITHUB_PERSONAL_ACCESS_TOKEN"]).toString()
                }
            }
        }
    }
}

As you can see no framework generated in build folder.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷了相思 2025-02-08 19:19:52

只需同步项目...将创建框架文件..或尝试./ gradlew build

just sync the project ... the framework file will be created .. or try ./gradlew build

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文