xcode - 如何在xcode中引用kmm共享库

标签 xcode kotlin-multiplatform

我完成了以下教程。

https://kotlinlang.org/docs/multiplatform-mobile-upgrade-app.html

我在下面有一个问题。

如何在 Xcode 中构建 iosApp

我能够在 AndroidStudio 中运行 IOSApp。所以我也尝试在 Xcode 中运行它。

但是我收到错误No such module 'shared'并且无法运行它。

因为我想使用Swift Package Manager,所以我在创建项目时选择了Regular Framework(不是cocoa pod)。如果我不选择CocoaPods,我可以使用Xcode来构建吗?还是我犯了一些错误?

我需要知道如何使用 Xcode 构建 IOSApp。

谢谢。

最佳答案

对于 Swift Package Manager,您需要调用命令 ./gradlew createXCFramework 来构建和创建框架。然后,您需要创建一个 Package.swift 文件来指向框架文件。像这样的事情:

let package = Package(
    name: "MyLibrary",
    platforms: [
        .iOS(.v13),
    ],
    products: [
        .library(
            name: "MyLibrary",
            targets: ["shared"])
    ],
    targets: [
        .binaryTarget(
            name: "shared",
            path: "YOUR_PATH/build/XCFrameworks/debug/shared.xcframework"
        )
    ]
)

您可以查看 Package.swift here 的更多详细信息.

您也可以尝试使用这个gradle插件来自动生成它。 https://github.com/ge-org/multiplatform-swiftpackage 我个人没有使用过它,但这可能是一种更简单的方法。

关于xcode - 如何在xcode中引用kmm共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73960783/

相关文章:

iphone - 在 xcode 4.x 中添加静态库的 header 搜索路径困惑?

xcode - 如果没有恢复文档,如何自动创建新的 NSDocument?

ios - FBSDK LoginManager 通过 Cocoapods "No visible @interface..."

swift - 未捕获的 Kotlin 异常 : kotlin. native.IncorrectDereferenceException:非法尝试访问非共享

android - kotlin 多平台 : how to reduce build time?

iphone - UIToolBar 选中按钮状态

swift - 在 SwiftUI 图像上重复动画

Kotlin native 互操作链接器找不到框架

swift - 如何在 Swift 中访问 KMMShared MutableStateFlow 对象

ios - Kotlin Multiplatform 中 iOS 应用程序的不同架构