Kotlin 多平台项目依赖于另一个带有 cocoapods 的项目
Kotlin multiplatform project depending on another one with cocoapods
我有一个 kotlin multipltform 库,里面有几个 cocoapods
cocoapods {
....
pod("gRPC/GRPCCore", grpcVersion)
pod("gRPC-ProtoRPC", grpcVersion)
pod("Protobuf", "3.15.8")
// etc
}
我将这个库发布到 artifactory (maven),ios 目标包含所有用于 cinterop 的 klib pods。
我有第二个 Kotlin 多平台库,我希望在其中使用以前的“核心”库。
iOSTarget("ios") {
binaries {
framework {
baseName = "SecondSharedLib"
export("first.shared.lib:1.0.0")
xcf.add(this)
}
}
}
sourceSets {
val commonMain by getting {
dependencies {
api("first.shared.lib:1.0.0")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val androidMain by getting {
dependencies {
}
}
val androidTest by getting {
dependencies {
implementation("junit:junit:4.13.2")
}
}
val iosMain by getting {
dependencies {
}
}
val iosTest by getting
}
链接时 ios 但是找不到 pod 模块。
例如:ld: framework not found gRPC_ProtoRPC
我也试过重新声明 pods 无济于事。
我想做的事情有可能吗?有人有什么建议吗?
注意:我不是 iOS 开发人员,所以如果我的理解有误,请严厉批评
您在引用另一个 KMM 项目时是否尝试过以下代码?下面的代码片段来自 Kotlin's documentation
kotlin {
sourceSets["commonMain"].dependencies {
implementation(project(":some-other-multiplatform-module"))
}
sourceSets["androidMain"].dependencies {
//platform part of :some-other-multiplatform-module will be added automatically
}
}
对于处理基础库依赖于 cocoapods 插件的嵌套多平台库的任何人,我必须通过 linker 选项 link 所有框架并重新定义所有 cocoapods以便框架可用于 linking。
我有一个 kotlin multipltform 库,里面有几个 cocoapods
cocoapods {
....
pod("gRPC/GRPCCore", grpcVersion)
pod("gRPC-ProtoRPC", grpcVersion)
pod("Protobuf", "3.15.8")
// etc
}
我将这个库发布到 artifactory (maven),ios 目标包含所有用于 cinterop 的 klib pods。
我有第二个 Kotlin 多平台库,我希望在其中使用以前的“核心”库。
iOSTarget("ios") {
binaries {
framework {
baseName = "SecondSharedLib"
export("first.shared.lib:1.0.0")
xcf.add(this)
}
}
}
sourceSets {
val commonMain by getting {
dependencies {
api("first.shared.lib:1.0.0")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}
val androidMain by getting {
dependencies {
}
}
val androidTest by getting {
dependencies {
implementation("junit:junit:4.13.2")
}
}
val iosMain by getting {
dependencies {
}
}
val iosTest by getting
}
链接时 ios 但是找不到 pod 模块。
例如:ld: framework not found gRPC_ProtoRPC
我也试过重新声明 pods 无济于事。
我想做的事情有可能吗?有人有什么建议吗?
注意:我不是 iOS 开发人员,所以如果我的理解有误,请严厉批评
您在引用另一个 KMM 项目时是否尝试过以下代码?下面的代码片段来自 Kotlin's documentation
kotlin {
sourceSets["commonMain"].dependencies {
implementation(project(":some-other-multiplatform-module"))
}
sourceSets["androidMain"].dependencies {
//platform part of :some-other-multiplatform-module will be added automatically
}
}
对于处理基础库依赖于 cocoapods 插件的嵌套多平台库的任何人,我必须通过 linker 选项 link 所有框架并重新定义所有 cocoapods以便框架可用于 linking。