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

rm5edbpk  于 2023-04-04  发布在  Android
关注(0)|答案(4)|浏览(116)

我已经按照KMM hands-on tutorial关于如何使用KMM构建一个示例应用程序,并且我能够成功完成所有步骤!(Yu-huu!)现在我正在尝试在生产应用程序中做一个小POC。因此,我创建了一个新的KMM共享模块并将其添加到Android项目中。对于Android部分,它运行良好,但我不知道如何将共享模块包含到iOS应用程序中。
根据此链接,gradle.properties文件中应引用iOS项目目录:

xcodeproj=~/iOSProjects/TestKMM

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

所以我想仅仅在gradle.properties中引用iOS项目是不够的,我肯定还漏掉了什么。
另外,我检查了共享模块的build目录,据我所知,没有生成iOS工件(这与实践教程项目不同,其中存在bin/iosX64/debugFragmework/shared.framework/ ....)。

brgchamk

brgchamk1#

所以我认为仅仅在www.example.com中引用iOS项目gradle.properties是不够的。
正确。动手操作似乎并没有描述你实际上如何与Xcode集成。我们通常使用cocoapods来简化这一切,但在动手操作中,你需要从gradle命令行运行:shared:packForXCode来构建实际的框架(你可以 * 也许 * 从Android Studio运行它)。
这应该会在你的构建目录中构建一个框架。看看实践中的Xcode项目。你会看到一个指向KMM框架的链接框架。在你的prod Xcode项目中,你需要添加它。在实践中,看看运行gradle的构建脚本。你会想把它带到你的prod Xcode项目中(见这里)。
要手动设置所有这些,您需要对Xcode config有相当扎实的理解。
如果您的prod Xcode使用Cocoapods,我建议使用该路线(以self-promo KaMP Kit为例)。

f5emj3cl

f5emj3cl2#

1.转到您的终端
1.运行./gradlew tasks
1.查找名称类似linkDebugFrameworkIos的任务
1.运行./gradlew linkDebugFrameworkIos
现在你已经在你的工作区中有了你的共享模块,它是通过Xcode打开的

fcwjkofz

fcwjkofz3#

从Kotlin1.5.20开始,你可以使用这里列出的embedAndSignAppleFrameworkForXcode
https://blog.jetbrains.com/kotlin/2021/07/multiplatform-gradle-plugin-improved-for-connecting-kmm-modules/
对于小型项目来说,cocoapods方法可能会矫枉过正,而packForXcode通常无法在共享代码更改或sim/设备切换时进行重建,这使得iOS开发人员使用起来非常痛苦。

f87krz0w

f87krz0w4#

我也遇到了这个问题。我通过将我的JDK从1. 8更新到11来修复它。

相关问题