android - 我可以直接在ios/android原生项目中使用/导入kotlin多平台库吗?

标签 android ios kotlin kotlin-multiplatform

我想为 ios 和 android 原生项目构建一个跨平台库。该库将只包含一些与 UI 无关的业务逻辑,类似于 KMM 的结构。

如果我构建了一个 KMM 插件,KMM 项目可以使用它,但是 ios/android 原生项目也可以导入并使用它们吗?

编辑:考虑该库的使用者只是一个 native ios 应用程序,而不是一个 KMM 项目。我不想建议他们将项目转换为 KMM 项目。

如果是,请分享任何示例库吗?

如果没有,我可以使用任何其他解决方案来构建库来支持所有不同的项目 android/ios/KMM 吗?

最佳答案

将 KMM 模块包含到现有 iOS 应用程序中不需要对现有 iOS 应用程序进行任何类型的转换。 KMM 共享组件可以单独开发,并通过将其添加到 iOS 项目的 podfile 中来包含在 iOS 项目中,然后可以像任何其他第三方库一样调用其中的方法。您可以找到有关 KMM CocoaPods 集成的更多信息 here .

# this is the only change needed in the iOS project (in the podfile)
pod 'mymodule', :path => '/path/to/kmm/project'

在 KMM 项目本身中,您可以在 gradle 文件中配置 iOS 目标并将其指向 iOS 项目。有关于此的更多详细信息here

kotlin {
    ios()

    cocoapods {
        summary = "Core library summary"
        homepage = "https://www.myproject.com"

        ios.deploymentTarget = "14.0"
        podfile = project.file("/path/to/ios/project/podfile")
    }

    //...
}

KMM有很多samples除了上面的文档之外,还提供一些详细信息 here了解如何在 Android Studio 中创建 KMM 项目。

关于android - 我可以直接在ios/android原生项目中使用/导入kotlin多平台库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70724188/

相关文章:

android - React Native - 如何从 MainActivity.java 向 RN 发出事件?

Android RecyclerView LayoutManager Fragment 异常

ios - 当屏幕方向改变时,UI Bezier Path 会改变 LineWidth。

gradle - 找不到 org.jetbrains.kotlinx :kotlinx-html:0. 6.4

android - 在 Repository 和 ViewModel 之间共享相同的 MutableLiveData

android - 如何使用 Koin 在 BaseFragment 中注入(inject) viewModel

Android:如何使屏幕的多个部分无效

ios - UISaveVideoAtPathToSavedPhotosAlbum 输出

ios - 在 iOS 上创建动态 pdf 文档

android - 在 Android 中绘制单杠最简单的方法是什么?