ole*_*men 5 kotlin kotlin-interop kotlin-native kotlin-multiplatform
我正在尝试在Kotlin Multiplatform项目中使用cocoapods框架。所以我
.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"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的.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
Run Code Online (Sandbox Code Playgroud)
我如何找出问题所在?我错过了.def文件中的东西吗?在build.gradle?
这里有两个有问题的时刻:
.def通常是不需要的,而是传递includeDirs给 Firebase 安装,例如https://github.com/JetBrains/kotlin-native/blob/c7c566ce0f12221088a8908b6dc8e116c56a931b/samples/gtk/build.gradle#L22会很有帮助compilations.main.linkerOpts类似的-F /Users/oleg/Projects/klug/crckalculator/iosApp/Pods/FirebaseCore/东西会有所帮助,例如参见https://github.com/JetBrains/kotlin-native/blob/c7c566ce0f12221088a8908b6dc8e116c56a931b/samples /videoplayer/build.gradle#L15| 归档时间: |
|
| 查看次数: |
572 次 |
| 最近记录: |