3

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

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

xcodeproj=~/iOSProjects/TestKMM

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

在此处输入图像描述

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


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

在此处输入图像描述

4

3 回答 3

5

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

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

那应该在您的构建目录中构建一个框架。动手看看Xcode项目。您将看到一个指向 KMM 框架的链接框架。在您的 prod Xcode 项目中,您需要添加它。在动手实践中,查看运行 gradle 的构建脚本。你会想把它带到你的 prod Xcode 项目中(见这里)。

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

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

于 2021-01-11T17:31:20.953 回答
1

从 kotlin 1.5.20 开始,您可以embedAndSignAppleFrameworkForXcode在此处使用概述。

https://blog.jetbrains.com/kotlin/2021/07/multiplatform-gradle-plugin-improved-for-connecting-kmm-modules/

cocoapods 方法对于小型项目来说可能是多余的,而且 packForXcode 经常无法在共享代码更改或 sim/设备切换时重建,这使得 iOS 开发人员使用它很痛苦。

于 2021-12-29T15:32:00.050 回答
0
  1. 转到您的终端
  2. ./gradlew tasks
  3. 查找名称如下的任务linkDebugFrameworkIos
  4. ./gradlew linkDebugFrameworkIos

现在您的工作区中有您通过 Xcode 打开的共享模块

于 2022-01-04T11:29:29.410 回答