gradle KMM cocopods发布目录用法或生成的podspec路径

ih99xse1  于 2023-03-18  发布在  其他
关注(0)|答案(1)|浏览(130)

我有一个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参考。

uqxowvwt

uqxowvwt1#

Kotlin生成的podspec是用于本地开发的,不是用于发布的。我从来没有使用过publishDir,所以我不确定它的目的是什么。私有cocopods podspec repos会期望一个为“发布”而设计的podspec。你也需要打包和分发二进制框架。
我们有一个发布KotlinXcode Framework二进制文件https://kmmbridge.touchlab.co/的开源项目。你可以配置它来发布到私有的podspec repos。有几个托管二进制文件的选项,但最常见的是在github工件中。
理论上,你可以发布Kotlin框架,并让UI框架依赖于它。我不太熟悉子规范,尽管可能有一种方法可以用它来发布。
框架的本地开发是另一个需要考虑的问题,你可能希望能够在本地开发Kotlin和UI,但是要将它们发布到podspec repo,这意味着本地和远程的podspec是不同的。

相关问题