无法将 Google 的“NearbyMessages”Cocoapod 添加到 Kotlin/Native 项目

问题描述

我想知道是否有人可以帮我将 cocoapod 添加到 kotlin 原生模块中,到目前为止运气不佳!该库是 Google 的 NearbyMessages API。 https://developers.google.com/nearby/messages/ios/get-started

到目前为止我有

  1. 使用 cocoapods 示例应用克隆了 KMM。 https://github.com/Kotlin/kotlin-with-cocoapods-sample。 (将 kotlin 插件版本号更改为 1.4.21,因为示例中引用的快照似乎不再可用)
  2. Gradle 同步并构建项目。一切顺利。
  3. 在 build.gradle.kts 中 AFNetworking 行上方添加 NearbyMessages pod... dotnet nuget push
  4. 现在,当我对同步进行 gradle 同步时,出现以下错误
pod("NearbyMessages")

我能够使用 podfile 和 pod install 来安装 cocoapod。不涉及 KMM。除此之外,我还尝试了各种随机的东西,但这些步骤似乎应该起作用。

这是 NearbyMessages 的 podspec 文件https://github.com/CocoaPods/Specs/blob/master/Specs/f/b/9/NearbyMessages/1.1.1/NearbyMessages.podspec.json

解决方法

JB 的人已经回答了你here

为了更好地索引,我在这里报告答案:

你好,汤姆普拉特,感谢你的报告!据我所知, 问题是由 NearbyMessages pod 包含一个静态 Objective-C 库,而不是框架。它没有module.modulemap,所以 cinterop 无法正确解释它。改变 build/cocoapods/defs/NearbyMessages.def 的内容具有标题 选项而不是模块让我手动执行 cinterop,但我不是 确保它可以在 Cocoapods 集成中完成。

作为手动解决方法,他们建议:

此外,为了使本手册的解决方法更实用,您可以尝试 调整生成此 .def 文件的 Gradle 任务。只需添加

tasks.named<DefFileTask>("generateDefNearbyMessages").configure {
    doLast {
        outputFile.writeText("""
            language = Objective-C
            headers = GNSMessages.h
        """)
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...