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

Swift本地公共包添加Sentry依赖后归档报错:No such module 'Sentry'

解决方案:归档时公共包找不到Sentry模块的问题

核心问题定位

你的Package.swift中对Sentry依赖的产品名称配置错误:sentry-cocoa包对外暴露的模块名称是Sentry,而非包名sentry-cocoa,这会导致归档阶段依赖解析失败(本地构建可能因为缓存跳过了严格校验)。

具体修复步骤

1. 修正公共包的Package.swift

将targets中的依赖配置修改为:

.target(
    name: "CommonUtilities",
    dependencies: [
      .product(name: "Sentry", package: "sentry-cocoa"), // 此处将sentry-cocoa修正为Sentry
    ],
),

保存后,在Xcode中执行File > Packages > Update to Latest Package Versions,确保依赖同步正确。

2. 检查主应用与watchOS扩展的依赖传递

  • 若主项目通过Xcode项目管理:确认主应用和watchOS扩展的Frameworks, Libraries, and Embedded Content中,不仅添加了Sentry,还确保CommonUtilities的依赖能正确拉取Sentry(Xcode通常自动处理,但归档时需手动确认)。
  • 若主项目通过SPM管理:在主项目的Package.swift中,确保CommonUtilities作为依赖被正确声明,且Sentry的依赖会被自动传递。

3. 统一归档构建配置

打开项目Build Settings,确保以下配置在**所有目标(包括公共包)**的Release归档配置中一致:

  • ENABLE_BITCODE:统一设置为YES或NO(Sentry 9.x+支持bitcode,建议保持全局一致)
  • FRAMEWORK_SEARCH_PATHS:添加$(inherited),确保能找到Sentry框架路径
  • OTHER_LDFLAGS:添加-framework Sentry,强制链接框架

4. 彻底清理缓存并重新构建

  • 执行Product > Clean Build Folder
  • 关闭Xcode,删除DerivedData目录:
    rm -rf ~/Library/Developer/Xcode/DerivedData
    
  • 重新打开项目,直接尝试归档操作。

验证方法

修改完成后,先执行Product > Build For > Archiving预构建,确认无模块找不到的错误后,再正式执行归档。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.04 23:12:33