【发布时间】:2019-05-31 13:02:14
【问题描述】:
我正在尝试在 Kotlin Multiplatform 项目中使用 cocoapods 框架。 所以我
- 向 Pods 文件添加了框架。
- 运行 pod install。
- 已创建
.def文件 - 在
build.gradle中添加了cinterop配置
./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
我怎样才能找出问题所在?我错过了.def 文件中的某些内容吗?在build.gradle?
【问题讨论】:
标签: kotlin kotlin-interop kotlin-native kotlin-multiplatform