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

KMM项目报错:':shared'模块找不到'embedAndSignAppleFrameworkForXcode'

KMM项目构建报错:无法解析“':shared'项目中未找到'embedAndSignAppleFrameworkForXcode'”

问题描述

在KMM项目构建流程中触发报错,提示无法找到embedAndSignAppleFrameworkForXcode Gradle任务。

环境信息

System                                           
    OS: macOS (13.0.1)
    CPU: Apple M1

Java
    Java (openjdk version "11.0.16.1" 2022-08-12)
    Location: /opt/homebrew/opt/openjdk@11/bin/java
    
    JAVA_HOME=/opt/homebrew/opt/openjdk@11
    
Android Studio
    Android Studio (2021.3)
    Location: /Applications/Android Studio.app
    Bundled Java: openjdk 11.0.13 2021-10-19
    Kotlin Plugin: 213-1.7.20-release-for-android-studio-AS6777.52
    Kotlin Multiplatform Mobile Plugin: 0.3.4(213-1.7.11-357-IJ)-241
    
Xcode
    Xcode (14.1)
    Location: /Applications/Xcode.app

shared模块核心Gradle配置

kotlin {
    android()

    listOf(
        iosArm64(),
    ).forEach {
        it.binaries.framework {
            baseName = "shared"
        }
    }

    sourceSets {
        val commonMain by getting {
            dependencies {
                implementation(project(SharedModule.networkMock))
                implementation(project(SharedModule.storage))
            }
        }
        val androidMain by getting {
            dependencies {
                implementation(Dependencies.hiltAndroid)
                implementation(Dependencies.okHttp)
                configurations.kaptHilt()
            }
        }
        val iosArm64Main by getting
        val iosMain by creating {
            dependsOn(commonMain)
            iosArm64Main.dependsOn(this)
            dependencies {
                implementation(Dependencies.coroutinesNative)
            }
        }
    }
}

已尝试但无效的操作

  • 通过Rosetta运行Xcode
  • 从项目架构中排除arm64
  • 关闭Android Studio并杀死Java进程后重新执行构建
  • 在模拟器与真机环境分别尝试运行

可行解决方案

1. 对齐Kotlin与KMM插件版本兼容性

当前使用的Kotlin插件(1.7.20)与KMM插件(0.3.4)版本存在兼容性偏差,建议同步升级两者到匹配版本:

  • 将Kotlin插件升级至1.7.22及以上
  • 对应更新KMM插件至兼容的最新版本(可在Android Studio插件市场查看适配版本)

2. 补充iOS模拟器架构配置

当前仅配置了真机架构iosArm64(),缺少M1芯片对应的模拟器架构iosSimulatorArm64(),这会导致Gradle生成的任务集不完整。修改shared模块的kotlin配置块:

kotlin {
    android()

    listOf(
        iosArm64(),
        iosSimulatorArm64() // 添加M1模拟器架构支持
    ).forEach {
        it.binaries.framework {
            baseName = "shared"
            isStatic = true // 可选:设置为静态框架,简化Xcode引用流程
        }
    }

    // 原sourceSets配置保持不变
}

3. 清理构建缓存并重新生成任务

执行以下命令清理缓存并验证任务是否生成:

./gradlew clean
./gradlew :shared:embedAndSignAppleFrameworkForXcode

若任务仍不存在,建议将Gradle版本升级至7.4及以上(与Kotlin 1.7.x系列插件兼容)。

4. 校验Xcode中Gradle任务引用

打开Xcode项目,进入构建阶段查看调用Gradle的脚本,确保:

  • 模块路径正确指向:shared
  • 任务名称embedAndSignAppleFrameworkForXcode拼写无误

内容的提问来源于stack exchange,提问作者Sergei Kirienko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:46:03