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

如何解决Xcode中Safari扩展Target无法引入Swift Package的问题?

解决Safari Extension Target无法导入CommonPackage的问题

核心原因分析

你的Swift Package仅指定了.iOS(.v14)平台支持,但Safari Extension Target可能运行在跨平台环境(比如同时兼容iOS和macOS),或是Extension的部署平台未被Package覆盖,导致模块无法被识别。此外也可能存在依赖关联未同步的情况。

分步解决方案

1. 扩展Package的平台支持范围

修改Package.swift中的platforms配置,添加Safari Extension Target对应的平台版本。例如如果你的Extension支持iOS 14+和macOS 11+,更新后的配置如下:

let package = Package(
    name: "CommonPackage",
    platforms: [
        .iOS(.v14),
        .macOS(.v11) // 根据你的Extension实际部署版本调整
    ],
    products: [
        .library(
            name: "CommonPackage",
            targets: ["CommonPackage"]),
    ],
    dependencies: [],
    targets: [
        .target(
            name: "CommonPackage",
            dependencies: []),
        .testTarget(
            name: "CommonPackage Tests",
            dependencies: ["CommonPackage"]),
    ]
)

2. 重新同步Package依赖

  • 在Xcode中执行File > Packages > Update to Latest Package Versions,让Xcode重新识别Package的平台配置变更。
  • 按下Cmd + Shift + K清理构建文件夹,随后重新构建整个项目。

3. 验证Extension Target的依赖配置

  • 选中Safari Extension Target,进入General > Frameworks, Libraries, and Embedded Content面板。
  • 确认CommonPackage已被添加,且嵌入方式设置为Do Not Embed(Swift Package库无需手动嵌入,Xcode会自动处理关联)。

4. 检查版本匹配(可选)

如果你的Extension是iOS专属,确认其Deployment Target版本不低于iOS 14,与Package的平台要求保持一致,避免版本不匹配导致的模块识别失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:07:33