kotlin-multiplatform - 导入 GoogleWebRTC Pod 失败 : module 'GoogleWebRTC' not found

标签 kotlin-multiplatform kotlin-native

我目前正在开发 Kotlin 多平台,并尝试与 GoogleWebRTC pod 进行交互。

pod 存在,我能够将其导入到单独的项目中(没有 Kotlin 多平台)。我可以看到 .framework 在我的构建目录中创建,但是当执行 gradle 同步或从 Xcode 构建时,我收到以下错误:

Exception in thread "main" java.lang.Error: /var/folders/hv/9cx28nxx4gz9hj_m86bp5rx40000gn/T/tmp362966650322311128.m:1:9: fatal error: module 'GoogleWebRTC' not found
    at org.jetbrains.kotlin.native.interop.indexer.UtilsKt.ensureNoCompileErrors(Utils.kt:152)
    at org.jetbrains.kotlin.native.interop.indexer.ModuleSupportKt.getModulesASTFiles(ModuleSupport.kt:67)
    at org.jetbrains.kotlin.native.interop.indexer.ModuleSupportKt.getModulesInfo(ModuleSupport.kt:13)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.buildNativeLibrary(main.kt:499)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.processCLib(main.kt:264)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.interop(main.kt:72)
    at org.jetbrains.kotlin.cli.utilities.InteropCompilerKt.invokeInterop(InteropCompiler.kt:45)
    at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:19)
    at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:37)

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

AFNetworking 似乎工作正常,但添加 WebRTC pod 似乎破坏了该项目。

我是否缺少 Kotlin 多平台的限制或其他什么?

这是我的build.gradle.kts:

    cocoapods {
        // Configure fields required by CocoaPods.
        summary = "Some description for a Kotlin/Native module"
        homepage = "Link to a Kotlin/Native module homepage"

        // You can change the name of the produced framework.
        // By default, it is the name of the Gradle project.
        frameworkName = "shared"
        ios.deploymentTarget = "10.0"

        pod("GoogleWebRTC", "~> 1.1")
        pod("AFNetworking", "~> 4.0.0")
    }

最佳答案

我能够重现此问题,但我不知道原因。

GoogleWebRTC pod 和 Kotlin-native/cocoapods 集成似乎存在问题。

我打开了一个问题 here .

我们有官方帮助。

框架名称似乎与 Pod 名称不同。所以一个可能的解决方案可能是:

kotlin {
    cocoapods {
        [...]
        pod("GoogleWebRTC", moduleName = "WebRTC", version = "~> 1.1")
        [...]
    }
    [...]
}

我试过了,有效。

关于kotlin-multiplatform - 导入 GoogleWebRTC Pod 失败 : module 'GoogleWebRTC' not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64937465/

相关文章:

kotlin - 在 HttpClient Ktor 中处理异常

swift - 未捕获的 Kotlin 异常 : kotlin. native.IncorrectDereferenceException:非法尝试访问非共享

kotlin - 如何将text/blob文件作为资源包含在Kotlin/Native中作为可执行文件一起编译?

swift - 有人可以帮助将 URLSession 从 Swift 转换为 Kotlin

gradle - 在 Intellij IDEA 生成的 kotlin 原生项目中,将 gradle 依赖项 block 放在哪里?

Kotlin Native 中的 Linux Nemo 文件管理器扩展开发

kotlin - 如何在Kotlin/Native中使用UnsafeMutableRawPointer?

kotlin - 使用适用于桌面的 Kotlin 多平台进行 http 请求

ios - iOS 上的 Kotlin Native 项目中的 libPhonenumber(来自 Google)

gradle - 将 `.klib` 库添加到 kotlin 多平台