我想知道如何导入我的cinterop-ted库来构建kotlin多平台构建。
我已经创建了library.def
文件并填充了该文件,还生成了library.klib
及其附带的文件夹。
我只是不明白如何将其导入gradle。
我在Internet上浏览了所有内容,找到了对Konan的引用,我想知道这是否是我必须使用的东西,或者是否是用于类似于“ cinterop”的东西。
我查看了以下链接,但没有发现与问题的.klib import
部分远程连接的任何内容。
答案 0 :(得分:1)
通常,您将需要使用多平台插件。如果要分别构建klib,则将创建一些额外的步骤(可能)。在链接2中,该平台插件已弃用。 Konan是本机平台/编译器的名称。去年有一个单独的插件,但是您绝对不想使用它。
我刚刚创建了一个示例,但尚未公开,所以这是我手头最好的示例:
我正在研究Firestore库。本机和互操作性配置位于多平台配置中。
kotlin {
android {
publishAllLibraryVariants()
}
// iosArm64()
iosX64("ios"){
compilations["main"].cinterops {
firebasecore {
packageName 'cocoapods.FirebaseCore'
defFile = file("$projectDir/src/iosMain/c_interop/FirebaseCore.def")
includeDirs ("$projectDir/../iosApp/Pods/FirebaseCore/Firebase/Core/Public")
compilerOpts ("-F$projectDir/src/iosMain/c_interop/modules/FirebaseCore-${versions.firebaseCoreIos}")
}
firestore {
packageName 'cocoapods.FirebaseFirestore'
defFile = file("$projectDir/src/iosMain/c_interop/FirebaseFirestore.def")
includeDirs ("$projectDir/../iosApp/Pods/FirebaseFirestore/Firestore/Source/Public", "$projectDir/../iosApp/Pods/FirebaseCore/Firebase/Core/Public")
compilerOpts ("-F$projectDir/src/iosMain/c_interop/modules/FirebaseFirestore-${versions.firebaseFirestoreIos}")
}
}
}
}
cinterops
设置def文件的位置和参数。然后,我将整个内容发布为一个多平台库。实际的本地工件最终是一个klib,但是全部使用gradle和依赖项元数据进行管理。