我有一个KMM项目,我想发布到一个私人的椰子回购。
该项目还有一个iOS pod,通过UIKit实现特定的iOS UI。
项目结构如下所示:
.
├── MyKMMAwesomeModule
│ ├── MyKMMAwesomeModule.podspec
│ ├── build
│ ├── build.gradle.kts
│ └── src
├── MyUI
│ ├── MyUI.podspec
│ ├── README.md
│ ├── Sources
│ └── Tests
我使用kotlin-cocoapods插件来生成podspec文件。
kotlin {
...
cocoapods {
name = "MyKMMAwesomeModule"
publishDir = project.file("../../")
framework {
baseName = "MyKMMAwesomeModule"
isStatic = false
transitiveExport = false
}
...
}
}
我希望生成的podspec文件在根文件夹中,这样我就可以从同一个仓库发布多个pod。为了实现这一点,我使用publishDir
,但似乎没有任何效果。由于一个podspec是手动编写的,另一个是生成的,我不想使用子规范。
请参见此处的publishDir
参考。
1条答案
按热度按时间uqxowvwt1#
Kotlin生成的podspec是用于本地开发的,不是用于发布的。我从来没有使用过
publishDir
,所以我不确定它的目的是什么。私有cocopods podspec repos会期望一个为“发布”而设计的podspec。你也需要打包和分发二进制框架。我们有一个发布KotlinXcode Framework二进制文件https://kmmbridge.touchlab.co/的开源项目。你可以配置它来发布到私有的podspec repos。有几个托管二进制文件的选项,但最常见的是在github工件中。
理论上,你可以发布Kotlin框架,并让UI框架依赖于它。我不太熟悉子规范,尽管可能有一种方法可以用它来发布。
框架的本地开发是另一个需要考虑的问题,你可能希望能够在本地开发Kotlin和UI,但是要将它们发布到podspec repo,这意味着本地和远程的podspec是不同的。