KMM:如何将共享模块引用到已存在的 iOS 项目中

时间:2021-01-11 17:17:21

标签: android ios kotlin-multiplatform kotlin-multiplatform-mobile

我已按照 KMM hands-on tutorial 的说明使用 KMM 构建示例应用程序,并且能够成功完成所有步骤! (Yu-huu!)现在我正在尝试在生产应用程序中做一个小的 POC。所以我创建了一个新的 KMM 共享模块并将其添加到 Android 项目中。对于 Android 部分,它工作正常,但我不知道如何将共享模块包含到 iOS 应用中。

According to this linkgradle.properties 文件中应引用 iOS 项目目录:

xcodeproj=~/iOSProjects/TestKMM

但是当我尝试导入共享模块时,xcode 抱怨没有这样的模块:

enter image description here

所以我想仅仅在 gradle.properties 中引用 iOS 项目是不够的。一定还有什么我想念的东西。


另外,我检查了共享模块的 build 目录,据我所知,没有生成 iOS 工件。 (这与存在 bin/iosX64/debugFragmework/shared.framework/ .... 的动手教程项目不同。)

enter image description here

1 个答案:

答案 0 :(得分:3)

<块引用>

所以我想仅仅在 gradle.properties 中引用 iOS 项目是不够的。

正确。动手操作似乎并未描述您如何实际与 Xcode 集成。我们通常使用 cocoapods 使这一切变得简单一点,但是在动手操作中,您需要从 gradle 命令行运行 :shared:packForXCode 来构建实际的框架(您可以也许运行它来自 Android Studio)。

那应该在你的构建目录中构建一个框架。在动手中查看 Xcode 项目。您将看到一个指向 KMM 框架的链接框架。在您的 prod Xcode 项目中,您需要添加它。在动手操作中,查看运行 gradle 的构建脚本。您需要将其转移到您的 Xcode 项目 (see here)。

要手动设置所有这些,您需要对 Xcode 配置有非常深入的了解。

如果您的 prod Xcode 使用 Cocoapods,我建议您使用该路线(以自我促销 KaMP Kit 为例)。