首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KMM和iOS中的传递依赖是如何工作的?

KMM和iOS中的传递依赖是如何工作的?
EN

Stack Overflow用户
提问于 2021-12-07 20:43:25
回答 1查看 684关注 0票数 3

假设我有一个包,共享包与两个KMM项目共享: KMM项目A和KMM项目B。

因此,我们有共享包-> KMM项目A和共享包-> KMM项目B。

现在,我想在我的iOS应用程序中同时使用KMM项目A和KMM项目B。这是如何工作的呢?共享包是否与这两个框架捆绑在一起(也就是说,我两次包含相同的依赖项?)此外,共享包是否需要是一个KMM项目,以允许KMM项目A和B生成相关的iOS框架?或者是纯粹的Kotlin项目?

这是一个图表,可能会给出更多的解释情况,我正在努力理解。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-07 23:05:28

您需要一个依赖于KMM项目A和KMM项目B的包装器"unbrella“模块,并让它生成您的Xcode Framework。

您可以从技术上生成两个框架,分别用于KMM项目A和B,但它们都有“共享包”的副本,以及Kotlin标准库的相关部分,最重要的是,这两个框架在二进制级别上是不同的,因此它们无法通信。

我的意思是,如果“共享包”有一个data class Foo,并且通过调用"KMM项目A“(比方说fun makeAFoo():Foo )得到这个结果,那么在"KMM项目B”中有一个定义为fun takeAFoo(foo:Foo)的函数,您从makeAFoo()获得的Foo实例不能传递到takeAFoo(foo:Foo)中。

因此,简单地说,您需要一个包装器模块,将两个“共享包”模块都拉进来。你还需要通过伞把它们出口。

见:https://touchlab.co/multiple-kotlin-frameworks-in-application/https://kotlinlang.org/docs/mpp-build-native-binaries.html#export-dependencies-to-binaries

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70266716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档