You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KMP项目iosMain导入CocoaPods依赖遇“Unresolved reference”问题求助

问题描述

已成功用CocoaPods构建应用,但在iosMain中导入依赖时出现错误:ERROR: Unresolved reference: cocoapods。当前环境信息:

  • Android Studio Koala Feature Drop | 2024.1.2 Patch 1
  • Xcode 16.0
  • CocoaPods 1.15.2
  • Kotlin Multiplatform 2.0.20

目标是在iosMain中通过import cocoapods.GoogleMobileAds.*引入Google-Mobile-Ads-SDK库。已参考相关KMP库及Stack Overflow建议调整build.gradle.kts配置(如下),同时发现该问题可能与工单KT-70566相关,该问题将在Kotlin 2.0.21中修复。

当前build.gradle.kts配置片段:

plugins {
    alias(libs.plugins.androidLibrary)
    kotlin("multiplatform") version "2.0.20"
    kotlin("native.cocoapods") version "2.0.20"
}

kotlin {
    iosX64()
    iosArm64()
    iosSimulatorArm64()

    cocoapods {
        ios.deploymentTarget = libs.versions.ios.deploymentTarget.get()
        framework {
            baseName = "TestGoogleMobileAds" // 重命名避免冲突
            isStatic = true
        }
        noPodspec()
        pod("Google-Mobile-Ads-SDK") {
            version = libs.versions.adMob.cocoapods.get()
            extraOpts += listOf("-compiler-option", "-fmodules")
        }
    }
}

解决方案

1. 升级Kotlin版本到2.0.21(推荐)

既然工单KT-70566明确会在Kotlin 2.0.21中修复此CocoaPods导入引用问题,直接升级版本是最彻底的解决方式:

  • 修改build.gradle.kts中的Kotlin版本:
plugins {
    alias(libs.plugins.androidLibrary)
    kotlin("multiplatform") version "2.0.21"
    kotlin("native.cocoapods") version "2.0.21"
}
  • 点击Android Studio右上角的「Sync Project with Gradle Files」执行同步
  • 重新执行pod install命令更新CocoaPods依赖

2. 临时修复(若暂时无法升级Kotlin版本)

如果因项目限制不能立即升级,可尝试以下步骤:

  • 确认cocoapods块中的framework配置正确,isStatic = true(你的配置已满足,但需排查无其他冲突)
  • 手动触发Kotlin Native绑定生成:
    1. 执行命令:./gradlew generateDummyFramework
    2. 执行命令:./gradlew podInstall重新安装Pods
  • 清理项目缓存:
    1. 执行命令:./gradlew clean
    2. 删除iosApp/Pods目录和Podfile.lock文件
    3. 重新执行pod install
  • 补充iosMain源集配置(若缺失):
    在kotlin块中添加明确的源集声明,确保绑定生效:
sourceSets {
    val iosMain by getting {
        dependencies {
            // KMP会自动处理CocoaPods绑定,无需额外添加依赖
        }
    }
}

3. 验证导入

完成上述步骤后,在iosMain的Kotlin文件中尝试导入:

import cocoapods.GoogleMobileAds.*

若仍报错,可尝试重启Android Studio并重新同步项目。


内容的提问来源于stack exchange,提问作者Robert Jamison

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:03:24