KMM:如何将共享模块引用到已存在的 iOS 项目中
KMM: How to reference the shared module into an already existing iOS project
我已经按照 KMM hands-on tutorial 如何使用 KMM 构建示例应用程序进行了操作,并且能够成功完成所有步骤! (Yu-huu!)现在我正在尝试在生产应用程序中做一个小的 POC。所以我创建了一个新的 KMM 共享模块并将其添加到 Android 项目中。对于 Android 部分,它工作正常,但我不知道如何将共享模块包含到 iOS 应用程序中。
According to this link,iOS项目目录应该在gradle.properties
文件中引用:
xcodeproj=~/iOSProjects/TestKMM
但是当我尝试导入共享模块时,xcode 抱怨没有这样的模块:
所以我想仅仅引用 gradle.properties
中的 iOS 项目是不够的。一定还有其他我想念的东西。
此外,我检查了共享模块的 build
目录,据我所知,没有生成 iOS 工件。 (这与动手教程项目不同,后者存在 bin/iosX64/debugFragmework/shared.framework/ ....
。)
So I suppose that simply referencing the iOS project in the gradle.properties is not enough.
正确。动手操作似乎没有描述您实际如何与 Xcode 集成。我们通常使用 cocoapods 来使这一切变得更简单,但在实际操作中,您需要从 gradle 命令行 运行 :shared:packForXCode
来构建实际的框架(您可以 可能 运行 来自 Android Studio)。
那应该在您的构建目录中构建一个框架。动手看看Xcode项目。您将看到指向 KMM 框架的链接框架。在您的 prod Xcode 项目中,您需要添加它。在实践中,查看 运行s gradle 的构建脚本。你会想把它带到你的 prod Xcode 项目 (see here).
要手动设置所有这些,您需要对 Xcode 配置有相当扎实的了解。
如果您的产品 Xcode 使用 Cocoapods,我建议您采用该路线(以自我宣传 KaMP Kit 为例)。
从 kotlin 1.5.20 开始,您可以使用此处概述的 embedAndSignAppleFrameworkForXcode
。
cocoapods 方法对于小型项目来说可能有点矫枉过正,而且 packForXcode 通常无法在共享代码更改或 sim/device 切换时重建,这让 iOS 开发人员使用起来很痛苦。
- 转到您的终端
- 运行
./gradlew tasks
- 查找名称类似于
linkDebugFrameworkIos
的任务
- 运行
./gradlew linkDebugFrameworkIos
现在您的工作区中有了您通过 Xcode
打开的共享模块
我已经按照 KMM hands-on tutorial 如何使用 KMM 构建示例应用程序进行了操作,并且能够成功完成所有步骤! (Yu-huu!)现在我正在尝试在生产应用程序中做一个小的 POC。所以我创建了一个新的 KMM 共享模块并将其添加到 Android 项目中。对于 Android 部分,它工作正常,但我不知道如何将共享模块包含到 iOS 应用程序中。
According to this link,iOS项目目录应该在gradle.properties
文件中引用:
xcodeproj=~/iOSProjects/TestKMM
但是当我尝试导入共享模块时,xcode 抱怨没有这样的模块:
所以我想仅仅引用 gradle.properties
中的 iOS 项目是不够的。一定还有其他我想念的东西。
此外,我检查了共享模块的 build
目录,据我所知,没有生成 iOS 工件。 (这与动手教程项目不同,后者存在 bin/iosX64/debugFragmework/shared.framework/ ....
。)
So I suppose that simply referencing the iOS project in the gradle.properties is not enough.
正确。动手操作似乎没有描述您实际如何与 Xcode 集成。我们通常使用 cocoapods 来使这一切变得更简单,但在实际操作中,您需要从 gradle 命令行 运行 :shared:packForXCode
来构建实际的框架(您可以 可能 运行 来自 Android Studio)。
那应该在您的构建目录中构建一个框架。动手看看Xcode项目。您将看到指向 KMM 框架的链接框架。在您的 prod Xcode 项目中,您需要添加它。在实践中,查看 运行s gradle 的构建脚本。你会想把它带到你的 prod Xcode 项目 (see here).
要手动设置所有这些,您需要对 Xcode 配置有相当扎实的了解。
如果您的产品 Xcode 使用 Cocoapods,我建议您采用该路线(以自我宣传 KaMP Kit 为例)。
从 kotlin 1.5.20 开始,您可以使用此处概述的 embedAndSignAppleFrameworkForXcode
。
cocoapods 方法对于小型项目来说可能有点矫枉过正,而且 packForXcode 通常无法在共享代码更改或 sim/device 切换时重建,这让 iOS 开发人员使用起来很痛苦。
- 转到您的终端
- 运行
./gradlew tasks
- 查找名称类似于
linkDebugFrameworkIos
的任务
- 运行
./gradlew linkDebugFrameworkIos
现在您的工作区中有了您通过 Xcode
打开的共享模块