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

KMM运行embedAndSignAppleFrameworkForXcode任务找不到如何解决?

embedAndSignAppleFrameworkForXcode 是 Kotlin Multiplatform 插件根据传入的 Apple 平台编译参数动态生成的任务,终端执行时未传入 Xcode 对应的环境变量是导致任务找不到的核心原因

排查与解决方案

手动注入编译参数后重新执行

Xcode 执行 Build Phases 脚本时会自动注入SDK_NAME、ARCHS、编译配置等环境变量触发任务注册,终端直接执行时需要手动补充这些参数,对应不同场景的执行命令如下:

# iOS 模拟器 x86_64 架构 Debug 版本
./gradlew :shared:embedAndSignAppleFrameworkForXcode \
-Pkotlin.native.cocoapods.target=ios_arm64 \
-Pkotlin.native.cocoapods.configuration=Debug \
-Archs=x86_64 \
-SDK_NAME=iphonesimulator

# iOS 真机 arm64 架构 Release 版本
./gradlew :shared:embedAndSignAppleFrameworkForXcode \
-Pkotlin.native.cocoapods.target=ios_arm64 \
-Pkotlin.native.cocoapods.configuration=Release \
-Archs=arm64 \
-SDK_NAME=iphoneos

检查 shared 模块 Gradle 配置

确认配置中已正确开启 cocoapods 插件并声明 iOS 编译目标,示例配置(Kotlin DSL)如下:

plugins {
    kotlin("multiplatform") version "1.5.31"
    kotlin("native.cocoapods") version "1.5.31"
    id("com.android.library")
}

kotlin {
    // 声明 iOS 编译目标,对应模拟器和真机架构
    ios()
    cocoapods {
        ios.deploymentTarget = "14.0"
        framework {
            baseName = "shared"
        }
    }
    // 其他 Android、common 配置
}

同时排查是否存在以下异常配置:

  • 自定义 Gradle 逻辑针对非 Xcode 运行环境禁用了 cocoapods 相关任务
  • iOS 编译目标声明不完整,缺失对应架构的目标配置

验证任务注册状态

执行以下命令列出 shared 模块下所有 cocoapods 分组的任务,确认参数正确时任务是否正常生成:

./gradlew :shared:tasks --group="cocoapods"

如果输出列表中存在embedAndSignAppleFrameworkForXcode,即可正常执行。

替代方案:直接调用架构绑定的link任务

如果不需要兼容 Xcode 集成的签名逻辑,可直接调用对应架构的 link 任务编译 framework,无需额外传参:

# 编译 iOS 模拟器 Debug 版本 framework,生成路径:shared/build/bin/iosX64/debugFramework/
./gradlew :shared:linkDebugFrameworkIosX64

# 编译 iOS 真机 Release 版本 framework,生成路径:shared/build/bin/iosArm64/releaseFramework/
./gradlew :shared:linkReleaseFrameworkIosArm64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:06:03