0

XCFramework MyFramework を作成し、指示に従って KMM に接続しようとしましたhttps://kotlinlang.org/docs/mobile/add-dependencies.html#add-a-framework-without-cocoapods

MyFramework.xcframowork は KotlinMultiplatform プロジェクトのルート内に配置されました

私の .def ファイルは次のようになります。

language = Objective-C
modules = MyFramework
package = MyFramework

build.gradle.kts ファイルに次のように記述します。

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", "MyFramework", "-F/")
    }
}

しかし、KMM プロジェクトを iOS 用にコンパイルすると、次のエラーが表示されます。

Task :shared:cinteropEventBusTypesIosX64 FAILED
Exception in thread "main" java.lang.Error: /var/folders/8h/_7cdkbh56b3fc72xbkjpk4nd218xjp/T/8209547019177661418.m:1:9: fatal error: module 'MyFramework' not found

compilerOpts("-framework", "MyFramework", "-F/") に間違ったパスを書いたと思いますが、別の理由かもしれません。

4

1 に答える 1