KMM项目CocoaPods的publishDir不生效,如何将生成的podspec移至根目录?
解决KMM项目自动生成Podspec到根目录的问题
针对你遇到的publishDir配置不生效、无法将KMM模块的podspec生成到项目根目录的问题,可按以下步骤解决:
1. 修正publishDir的路径配置
之前使用相对路径../../可能因Gradle的路径解析逻辑导致定位错误,直接使用project.rootDir指向项目根目录更可靠:
kotlin { // ...其他配置 cocoapods { name = "MyKMMAwesomeModule" // 直接指向项目根目录 publishDir = project.rootDir framework { baseName = "MyKMMAwesomeModule" isStatic = false transitiveExport = false } // ...其他配置 } }
2. 清理缓存并重新生成Podspec
旧的构建缓存可能导致新配置不生效,执行以下Gradle任务强制重新生成:
./gradlew clean :MyKMMAwesomeModule:podspec
执行完成后,检查项目根目录是否已生成MyKMMAwesomeModule.podspec文件。
3. 验证路径正确性(可选)
如果仍有问题,可在配置中添加打印语句,确认publishDir的实际路径:
kotlin { cocoapods { // ...其他配置 publishDir = project.rootDir // 打印绝对路径到控制台 println("Podspec生成路径:${publishDir.absolutePath}") } }
运行Gradle同步或任意任务,查看控制台输出的路径是否为项目根目录,排查路径定位问题。
4. 发布私有Pod
确认两个podspec都在根目录后,分别执行发布命令即可:
# 发布KMM模块的Pod pod repo push 你的私有仓库名 MyKMMAwesomeModule.podspec # 发布手动编写的UI Pod pod repo push 你的私有仓库名 MyUI.podspec
内容的提问来源于stack exchange,提问作者Lescai Ionel
相关产品推荐
相关产品推荐

