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

时间:2019-01-05 00:03:36

标签: kotlin kotlin-interop kotlin-native kotlin-multiplatform

我正在尝试在Kotlin Multiplatform项目中使用cocoapods框架。 所以我

  • 将框架添加到Pods文件。
  • 运行pod安装。
  • 创建了.def文件
  • cinterop中添加了build.gradle配置

./gradlew cinteropFirebaseIos成功运行。它生成.klib,因此我可以看到kotlin代码中的类。 但是,当我尝试运行iOS应用时,构建失败并显示以下消息:

  

显示最近的消息

     

>任务:app:linkDebugFrameworkIos

     

ld:找不到框架FirebaseDatabase

     

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld调用报告的错误

这是我在build.gradle中的配置

    fromPreset(presets.iosX64, 'ios') {
        compilations.main {
            outputKinds('FRAMEWORK')
            cinterops {
                firebase {
                    def proj = "${System.getProperty("user.home")}/Projects/kmpp"
                    def pods = "${proj}/iosApp/Pods"

                    defFile "${proj}/app/src/iosMain/c_interop/libfirebase.def"

                    includeDirs "${pods}/Firebase",
                            "${pods}/Firebase/CoreOnly/Sources",
                            "${pods}/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers"
                }
            }
        }
    }

这是我的.def文件:

language = Objective-C
headers = /Users/oleg/Projects/klug/crckalculator/iosApp/Pods/FirebaseCore/Firebase/Core/Public/FIRApp.h /Users/oleg/Projects/klug/crckalculator/iosApp/Pods/FirebaseDatabase/Firebase/Database/Public/FIRDatabase.h /Users/oleg/Projects/klug/crckalculator/iosApp/Pods/FirebaseCore/Firebase/Core/Public/FirebaseCore.h

compilerOpts = -framework FirebaseDatabase
linkerOpts = -framework FirebaseDatabase

enter image description here

我该如何找出问题所在?我是否错过了.def文件中的某些内容?在build.gradle中?

1 个答案:

答案 0 :(得分:0)

这里有两个有问题的时刻: