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

Carthage安装Mastercard网关iOS SDK失败问题求助

使用Carthage解决Mastercard网关iOS SDK在Xcode 14.3+中的部署目标兼容问题

问题背景

使用Xcode 14.2及对应命令行工具时,执行carthage update --use-xcframeworks可成功构建Mastercard网关iOS SDK;但升级到Xcode 14.3及以上版本后,构建失败,报错:

The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 11.0 to 16.4.99. (in target 'MPGSDK-iOS' from project 'MPGSDK')

这是因为Xcode 14.3起不再支持iOS 8.0作为部署目标,而SDK默认配置的部署目标为8.0,导致构建冲突。以下是针对Carthage的解决方案:


解决方案1:通过命令行参数覆盖部署目标

直接在Carthage命令中传递xcodebuild参数,强制将SDK的部署目标设置为11.0(Xcode 14.3支持的最低版本)。执行以下命令:

carthage update --use-xcframeworks --xcodebuild-arguments "-destination", "platform=iOS,version=11.0", "-DCARTHAGE=1", "IPHONEOS_DEPLOYMENT_TARGET=11.0"

该命令通过IPHONEOS_DEPLOYMENT_TARGET=11.0参数覆盖SDK原有的部署目标配置,适配Xcode 14.3+的要求。


解决方案2:修改本地SDK项目后构建

如果命令行参数方式无效,可手动修改SDK的部署目标后从本地构建:

  1. 克隆Mastercard网关iOS SDK仓库到本地目录
  2. 打开仓库中的MPGSDK.xcodeproj,找到MPGSDK-iOS target,将iOS Deployment Target修改为11.0
  3. 修改项目根目录的Cartfile,将原有的SDK依赖地址替换为本地路径,例如:
    file:///Users/yourname/Documents/gateway-ios-sdk
    
  4. 执行carthage update --use-xcframeworks完成构建

解决方案3:使用Carthage自定义构建脚本(进阶)

创建自定义构建脚本,在Carthage拉取SDK后自动修改部署目标,适合重复构建场景:

  1. 项目根目录创建carthage-prebuild.sh脚本,内容如下:
    #!/bin/bash
    SDK_PATH="Carthage/Checkouts/gateway-ios-sdk/MPGSDK.xcodeproj"
    # 修改部署目标为11.0
    /usr/libexec/PlistBuddy -c "Set :objects:MPGSDK-iOS:buildSettings:IPHONEOS_DEPLOYMENT_TARGET 11.0" "$SDK_PATH/project.pbxproj"
    
  2. 赋予脚本执行权限:chmod +x carthage-prebuild.sh
  3. 执行Carthage命令时先运行脚本:
    ./carthage-prebuild.sh && carthage update --use-xcframeworks
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 14:37:40