在Android世界中,我可以在模块中添加一个依赖项,对于任何将该模块作为依赖项添加的模块,它都可以根据需要使用来自该依赖项的API。例如,facebook ->使用模块-> foo模块->主应用程序模块,foo模块和主应用程序模块都可以使用facebook。
我如何在多平台世界(或iOS世界)做同样的事情?facebook iOS sdk pod -> utils模块-> foo模块-> iOS主项目
我尝试过只在utils模块中添加pod,但是foo & main都无法访问iOS API。如果我在foo模块中添加相同的pod,它也不能访问Facebook。
还是应该使用cocoapods以外的其他依赖管理工具?
发布于 2022-01-21 08:58:36
我想你最终会想要一些类似将依赖项导出到二进制文件的东西。但是,我不确定这是否适用于Kotlin模块之间的依赖关系。对于它们之间的依赖关系,我建议使用api依赖项链接,并为每个模块分别添加pods。
我的意思是,核心模块的build.gradle.kts应该只包含
...
kotlin {
ios()
cocoapods {
ios.deploymentTarget = "13.5"
summary = "CocoaPods test library"
homepage = "https://github.com/JetBrains/kotlin"
pod("FBSDKCoreKit")
}
}
...登录模块具有cocoapods和核心依赖关系:
...
kotlin {
ios()
framework {
// Mandatory properties
// Configure fields required by CocoaPods.
summary = "Some description for a Kotlin/Native module"
homepage = "Link to a Kotlin/Native module homepage"
// Framework name configuration. Use this property instead of deprecated 'frameworkName'
baseName = "MyFramework"
// Optional properties
// (Optional) Dynamic framework support
isStatic = false
// (Optional) Dependency export
export(project(":core"))
transitiveExport = true
// (Optional) Bitcode embedding
embedBitcode(BITCODE)
}
pod("FBSDKCoreKit")
pod("FBSDKLoginKit")
}
...
sourceSets {
val iosMain by getting {
dependencies {
api(project(":core"))
}
}
}
}
...发布于 2021-12-23 01:31:08
您只能导出单个Kotlin Xcode Framework。它是一种“大二进制”,它拥有所有的依赖关系。如果"utils模块“和"foo模块”都是Kotlin模块,则应该将它们收集到单个Kotlin Xcode Framework中。
https://stackoverflow.com/questions/70456588
复制相似问题