我已经按照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/ ....
)。
4条答案
按热度按时间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为例)。
f5emj3cl2#
1.转到您的终端
1.运行
./gradlew tasks
1.查找名称类似
linkDebugFrameworkIos
的任务1.运行
./gradlew linkDebugFrameworkIos
现在你已经在你的工作区中有了你的共享模块,它是通过Xcode打开的
fcwjkofz3#
从Kotlin1.5.20开始,你可以使用这里列出的
embedAndSignAppleFrameworkForXcode
。https://blog.jetbrains.com/kotlin/2021/07/multiplatform-gradle-plugin-improved-for-connecting-kmm-modules/
对于小型项目来说,cocoapods方法可能会矫枉过正,而packForXcode通常无法在共享代码更改或sim/设备切换时进行重建,这使得iOS开发人员使用起来非常痛苦。
f87krz0w4#
我也遇到了这个问题。我通过将我的JDK从1. 8更新到11来修复它。