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
相关产品推荐
相关产品推荐

