我已遵循KMM 实践教程 https://kotlinlang.org/docs/mobile/hands-on-networking-data-storage.html关于如何使用 KMM 构建示例应用程序,我能够成功完成所有步骤! (Yu-huu!)现在我正在尝试在生产应用程序中做一个小型的 POC。所以我创建了一个新的KMM共享模块并将其添加到Android项目中。对于 Android 部分,它工作正常,但我不知道如何将共享模块包含到 iOS 应用程序中。
根据这个链接 https://kotlinlang.org/docs/mobile/integrate-in-existing-app.html#make-your-application-work-on-ios,iOS项目目录应该在gradle.properties
file:
xcodeproj=~/iOSProjects/TestKMM
但是当我尝试导入共享模块时,xcode 抱怨没有这样的模块:
所以我想简单地引用iOS项目gradle.properties
是不足够的。我一定还缺少其他东西。
另外,我还检查了build
共享模块的目录,据我所知,没有生成 iOS 工件。 (这与实践教程项目不同,其中bin/iosX64/debugFragmework/shared.framework/ ....
存在。)
所以我认为仅仅在 gradle.properties 中引用 iOS 项目是不够的。
正确的。实践似乎并没有描述您如何实际与 Xcode 集成。我们通常使用 cocoapods 来使这一切变得简单一些,但在实际操作中,您需要运行:shared:packForXCode
从 gradle 命令行构建实际的框架(您可以maybe从 Android Studio 运行它)。
这应该在您的构建目录中构建一个框架。看一下动手中的Xcode项目。您将看到一个指向 KMM 框架的链接框架。在您的产品 Xcode 项目中,您需要添加它。在实际操作中,查看运行 gradle 的构建脚本。您需要将其转移到您的 prod Xcode 项目中(see here https://github.com/kotlin-hands-on/kmm-networking-and-data-storage/blob/master/iosApp/iosApp.xcodeproj/project.pbxproj#L294).
要手动设置所有这些,您需要对 Xcode 配置有非常深入的了解。
如果您的产品 Xcode 使用 Cocoapods,我建议您采用该路线(以及自我推销KaMP Kit https://github.com/touchlab/KaMPKit举个例子)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)