Kotlin 多平台项目无法从 XCFramework 中找到模块

问题描述

我创建了 XCFramework MyFramework 并尝试按照说明 https://kotlinlang.org/docs/mobile/add-dependencies.html#add-a-framework-without-cocoapods

将其连接到 KMM

MyFramework.xcframowork 被放置在 KotlinMultiplatform 项目的根目录中

我的 .def 文件看起来像:

Public Function GetUniqueValues(ByVal valueString As String,ByVal delimiter As String) As String
    With New Collection
        On Error Resume Next

        Dim item As Variant
        For Each item In Split(valueString,delimiter)
            .Add item,item

            If Err.Number = 0 Then _
                GetUniqueValues = GetUniqueValues & item & delimiter

            Err.Clear
        Next item
    End With

    GetUniqueValues = Left(GetUniqueValues,Len(GetUniqueValues) - Len(delimiter))
End Function

在 build.gradle.kts 文件中我写:

language = Objective-C
modules = MyFramework
package = MyFramework

但是当我为 iOS 编译 KMM 项目时,它给我写了错误:

kotlin {
android()
iosX64 {
    compilations.getByName("main") {
        val MyFramework by cinterops.creating {
            // Path to .def file
            defFile("src/nativeInterop/cinterop/MyFramework.def")

            compilerOpts("-framework","MyFramework","-F/")
        }
        //val anotherInterop by cinterops.creating { /* ... */ }
    }

    binaries {
        framework {
            baseName = "shared"
        }
    }

    binaries.all {
        // Tell the linker where the framework is located.
        linkerOpts("-framework","-F/")
    }
}

我想我在 compilerOpts("-framework","-F/") 中写了错误的路径,但可能是另一个原因。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)