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

KMM+CocoaPods项目:macOS构建后iOS构建出现部署目标冲突错误

解决KMM+CocoaPods项目部署目标冲突问题

问题根源

构建环境中同时残留了MACOSX_DEPLOYMENT_TARGET和IPHONEOS_DEPLOYMENT_TARGET两个环境变量,导致Xcode无法识别当前构建目标的正确平台。KMM跨平台构建流程中,macOS构建后环境变量未被正确重置,进而干扰后续iOS构建。

修复步骤

1. 清理终端环境变量缓存

打开终端,执行命令清除残留的部署目标变量,之后关闭当前终端重新打开:

unset MACOSX_DEPLOYMENT_TARGET
unset IPHONEOS_DEPLOYMENT_TARGET

2. 明确Podfile的平台部署版本

在项目根目录的Podfile中,分别为iOS和macOS目标指定清晰的最低部署版本,避免环境变量冲突:

platform :ios, '14.0'
platform :macos, '11.0'

target 'Your-iOS-Target' do
  use_frameworks!
  pod 'Your-Dependencies'
end

target 'Your-macOS-Target' do
  use_frameworks!
  pod 'Your-Dependencies'
end

修改后执行pod install重新安装依赖。

3. 为Xcode构建方案添加前置脚本

打开Xcode,进入iOS构建方案的Edit Scheme → Build → Pre-actions,添加Run Script动作:

unset MACOSX_DEPLOYMENT_TARGET
export IPHONEOS_DEPLOYMENT_TARGET=14.0 # 替换为你的iOS最低部署版本

同样为macOS构建方案添加对应前置脚本:

unset IPHONEOS_DEPLOYMENT_TARGET
export MACOSX_DEPLOYMENT_TARGET=11.0 # 替换为你的macOS最低部署版本

4. 检查KMM共享模块的Gradle配置

在共享模块的build.gradle.kts中,确保iOS和macOS的部署版本配置无交叉:

kotlin {
    ios {
        binaries.framework {
            baseName = "Shared"
            minimumDeploymentTarget = "14.0"
        }
    }
    macosX64 {
        binaries.framework {
            baseName = "Shared"
            minimumDeploymentTarget = "11.0"
        }
    }
    // 其他配置项
}

验证

完成上述步骤后,先构建macOS目标,再立即构建iOS目标,检查是否仍有报错。若问题存在,尝试重启Xcode后再次构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:22:11