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

标签 ios xcode cocoapods kotlin-multiplatform kotlin-native

我一直在努力解决一个问题。

我正在使用 Kotlin Multiplatform (KMP) 构建跨平台应用(iOS 和 Android),其中需要 Google 的库 ( https://github.com/google/libphonenumber )。

对于 Android,我可以指向 Maven 存储库 ( https://repo1.maven.org/maven2/com/googlecode/libphonenumber/libphonenumber/8.12.6/ )。

对于 iOS,我可以通过 Cocoapods 使用 libPhonenumber 的 ObjC 端口。( https://cocoapods.org/pods/libPhoneNumber-ios )。

但是,我无法使用 Kotlin(cocoapod 插件)来正确识别 Pod。该插件似乎无法构建。 这是我的设置的详细信息:

  1. Xcode v11.5
  2. IntelliJ IDEA v2020.1.2
  3. Cocoapods v1.9.1
  4. Gradle 6.0.1
  5. 示例存储库 ( https://github.com/touchlab/kotlin-native ) 注意:在存储库中,我使用 ./samples/cocoapods
  6. 修改 ./samples/cocoapods/kotlin-library/build.gradle.kts 注释掉 AFNetworking,删除 AFNetworking pod pod("AFNetworking", "~> 3.2.0") 添加新的 Pod pod("libPhoneNumber-iOS")
  7. 修改 ./samples/cocoapods/kotlin-library/gradle.properties 改变这一行: kotlin.native.home=../../../dist 对此: #kotlin.native.home=../../../dist
  8. 在终端中的此文件夹中:./samples/cocoapods/kotlin-library/ ./gradlew podspec 这会在 ./samples/cocoapods/kotlin-library/build/cocoapods/defs/中创建一个 podspec 文件 (libPhoneNumber-iOS.def)
  9. 从 kotlin-library cd 到 ios-app 文件夹 cd ../ios-app/
  10. 使用以下命令安装 Pod: pod 安装 您会看到类似以下内容:
Downloading dependencies
Installing kotlin_library (1.0)
Installing libPhoneNumber-iOS (0.9.15)
Generating Pods project
Integrating client project
Pod installation complete! There is 1 dependency from the Podfile and 2 total pods installed.

当我在 Xcode 中构建示例“ios-app”目标:模拟器时,出现错误: fatal error :找不到模块“libPhoneNumber”

我尝试过其他 libPhoneNumber pod,例如:

  • libPhoneNumberSwift
  • LTPhoneNumberField 两者都无法使用 Kotlin 的 cocoapods 插件构建,但可以在没有 Kotlin 的 cocoapod 插件的情况下作为 Pod 工作。

我错过了什么?

最佳答案

这个特殊问题似乎是由 Pod 名称中的破折号引起的。已经报告了一个问题 on GitHub 。目前,建议通过重新命名模块来解决此问题。更改您的 kotlin-library/build.gradle.kts 就像

 pod("libPhoneNumber-iOS", moduleName = "libPhoneNumber_iOS")  

应该有帮助。请尝试一下,并在此处或 GH 上告诉我们是否有效。

关于ios - iOS 上的 Kotlin Native 项目中的 libPhonenumber(来自 Google),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62736425/

相关文章:

iphone - iOS:从 AppDelegate 访问导航 View Controller

xcode - 使用 Xcode 切换 View

ios - 删除 pod( cocoa pod )后出现 Apple Mach-O 链接器错误

iphone - 在 iOS 中使移动动画永久化

iphone - 委托(delegate)上设置的事件

ios - 嵌入式二进制验证实用程序错误

iOS -pod 'Google-Mobile-Ads-SDK' 和 pod 'Firebase/AdMob' 之间的区别是什么

ios:内存数据存储

ios - 在 Xcode 上未检测到 Material 图标库

swift - 具有依赖项 cocoapods 链接错误的供应商框架