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

解决AWS AppSync iOS SDK与AWS Amplify Swift的SPM共存冲突

AWS AppSync iOS SDK 与 AWS Amplify Swift 共存解决方法

出现“multiple product named”错误的核心原因是两个SDK包含了同名的共享组件(如AWSCore、AWSPluginsCore这类基础依赖),以下是具体解决步骤:

  • 定位重复产物
    打开Xcode的File > Packages > View Package Dependencies,分别查看AWS AppSync和Amplify的依赖树,找到错误提示中重复的产物名称,确认是哪两个模块产出了重复的target。

  • 缩小SPM导入范围
    不要直接导入整个AWS AppSync SDK,只选择项目实际用到的产物。在Xcode的项目依赖设置中,编辑AppSync的package依赖,取消勾选与Amplify重复的产物target;如果使用Package.swift,则在dependencies的product字段里只声明需要的模块,比如:

    .package(url: "你的fork版AppSync仓库地址", from: "x.x.x"),
    .product(name: "AWSAppSync", package: "aws-mobile-appsync-sdk-ios")
    
  • 统一fork版AppSync的依赖版本
    既然你已经fork了AppSync仓库,可在fork版本的Package.swift中,将其依赖的AWS基础组件(如aws-sdk-ios)版本,修改为与Amplify使用的版本完全一致。这样SPM会自动复用同一版本的依赖,避免重复生成同名产物。

  • 优化代码中的导入逻辑
    在项目代码里避免全局同时导入冲突组件,仅在需要的文件中单独导入对应模块:比如仅用到AppSync的文件只写import AWSAppSync,仅用到Amplify的文件只写import Amplify,减少冲突概率。

  • 清理缓存重新解析
    若以上操作后仍有问题,清理SPM和Xcode缓存:

    • 关闭Xcode,删除~/Library/Caches/org.swift.swiftpm下的缓存文件
    • 删除项目对应的DerivedData文件夹(可通过Xcode偏好设置的Locations面板找到路径)
    • 重新打开项目,让SPM重新解析所有依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 08:52:49