KMM:如何将共享模块引用到现有的 iOS 项目中

And*_*Res 7 android ios kotlin-multiplatform kotlin-multiplatform-mobile

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

根据此链接,文件中应引用iOS项目目录gradle.properties

xcodeproj=~/iOSProjects/TestKMM
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

所以我认为仅仅引用 中的 iOS 项目gradle.properties是不够的。我一定还缺少其他东西。


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

在此输入图像描述

Kev*_*gan 6

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

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

这应该在您的构建目录中构建一个框架。看一下动手中的Xcode项目。您将看到一个指向 KMM 框架的链接框架。在您的产品 Xcode 项目中,您需要添加它。在实际操作中,查看运行 gradle 的构建脚本。您需要将其转移到您的 prod Xcode 项目中(请参阅此处)。

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

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