【问题标题】:Execution failed for task ':library:cinteropRealmSwiftIos' when adding RealmSwift to kotlin multiplaform library project将 RealmSwift 添加到 kotlin multiplaform 库项目时,任务 ':library:cinteropRealmSwiftIos' 执行失败
【发布时间】:2021-05-31 10:34:05
【问题描述】:

我正在尝试将 RealmSwift 添加为我的 Kotlin 多平台库项目的 iOS 目标的依赖项。我收到此错误:

Execution failed for task ':library:cinteropRealmSwiftIos'.
> Process 'command '/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

我不知道这个 gradle 任务“cinteropRealmSwiftIos”是什么,但它总是在那里失败,出现通用退出代码并且没有有用的消息。

这是我的build.gradle.kts

import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget

plugins {
    kotlin("multiplatform")
    id("com.android.library")

    kotlin("native.cocoapods")
}

kotlin {
    val iOSTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget =
        if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true)
            ::iosArm64
        else
            ::iosX64
    android()
    iOSTarget("ios") {
        binaries {
        }
    }

    version = "1.0" // Pod version
    cocoapods {
        // Configure fields required by CocoaPods.
        summary = "Some description for a Kotlin/Native module"
        homepage = "Link to a Kotlin/Native module homepage"
        frameworkName = "MyLibrary"
        // RealmSwift needs a "recent" deployment target.
        ios.deploymentTarget = "12.0"

        pod("RealmSwift") {
            version = "~> 10.5"
        }
    }

    sourceSets {
        val commonMain by getting
        val commonTest by getting {
            dependencies {
                implementation(kotlin("test-common"))
                implementation(kotlin("test-annotations-common"))
            }
        }
        val androidMain by getting
        val androidTest by getting {
            dependencies {
                implementation(kotlin("test-junit"))
                implementation("junit:junit:4.13")
            }
        }
        val iosMain by getting
    }
}

android { /* Android Config */}

我使用的是 Kotlin 版本“1.4.31”和 Cocoa Pods 版本“1.10.1”。

【问题讨论】:

    标签: gradle realm cocoapods kotlin-multiplatform


    【解决方案1】:

    根据 pod 名称,我会说这不是一个好主意。 Kotlin/Native 不支持与 Swift 的直接互操作性,只能通过 Objective-C(查看更多详细信息 [此处][1])。也许其他一些 pod 会更合适

    P.S,正如我在 [this][2] 存储库中发现的,Realm 团队正在开发 Kotlin 多平台版本。如果您有兴趣将此库用于您的 KMM 项目,可能值得一试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 2016-09-17
      • 2021-06-11
      • 2019-02-27
      • 1970-01-01
      相关资源
      最近更新 更多