Safari Web 扩展在存档时有效,但在从 Xcode 运行时无效 - “无法找到 popup.html”错误”

问题描述 投票:0回答:1

我正在使用 Xcode 开发适用于 Mac 的 Safari Web 扩展,但遇到了一个似乎无法解决的令人沮丧的问题。

问题:

当我存档并导出应用程序并安装它时,该扩展程序在 Safari 中完美运行 - 没有错误,并且所有资源都正确加载。 但是,当我直接从 Xcode 运行应用程序时(用于开发和调试),Safari 在扩展首选项中显示以下错误:

  • “在扩展程序的资源中找不到‘popup.html’。”

有时还显示:

  • “在扩展程序的资源中找不到‘background.js’。”

此外,从 Xcode 运行时,即使应用程序启动,该扩展也不会出现在 Safari 的扩展列表中。

这曾经可以工作,然后当我通过存档导出应用程序的副本并打开该应用程序进行测试时,它就随机停止工作。之后我无法通过从 Xcode 运行来让它工作。

到目前为止我尝试过的:

  • 检查文件包含:
    • 已验证
      popup.html
      和所有其他资源文件是否包含在扩展目标中,并且存在于 Copy Bundle Resources 阶段。
    • 确认文件实际存在于
      Contents/Resources/
      下的扩展包中。
  • 已验证
    manifest.json
    **:**
    • 确保
      popup.html
      和其他资源的路径正确。
    • 已验证没有语法错误。
  • 清理的构建工件:
    • 在 Xcode 中执行清理构建文件夹
    • 删除派生数据。
    • 重新启动 Xcode 并重建项目。
  • 卸载以前的版本:
    • /Applications
      ~/Applications
      ~/Library/Safari/Extensions/
      中删除了应用程序和扩展程序的所有实例。
    • 清除了 Safari 缓存和与扩展相关的首选项。
    • 重新启动我的 Mac 以确保所有进程均已重置。
  • 代码签名和权利:
    • 检查应用程序和扩展程序是否已正确进行代码签名并启用了自动签名。
    • 已验证是否存在必要的权利。
  • 捆绑包标识符和版本:
    • 确认应用程序和扩展程序的捆绑包标识符正确。
    • 增加了版本号。
  • 构建配置:
    • 尝试使用调试和发布配置运行应用程序。
    • 调整方案以确保构建配置匹配。
  • 测试将应用程序移至
    /Applications
    **:**
    • 构建应用程序并将其手动移动到
      /Applications
    • 从那里启动它,但从 Xcode 运行时,该扩展仍然没有出现在 Safari 中。

其他观察结果:

  • 此问题似乎仅在从 Xcode 运行应用程序时才会出现。存档/导出的应用程序运行没有任何问题。
  • 当应用程序从 Xcode 运行时,Safari 可能期望扩展位于特定位置或具有某些属性。
  • 检查构建的应用程序和扩展时,未发现与
    popup.html
    相关的错误;文件存在且路径正确。

问题:

  • 是否有人在从 Xcode 运行主机应用程序时遇到过 Safari Web Extensions 无法正确加载的类似问题?
  • 是否需要特定步骤或配置来确保 Safari 在开发过程中识别并加载扩展?
  • 这可能与从 Xcode 运行时的代码签名、权利或 macOS 安全设置有关吗?

环境:

  • macOS 版本: macOS Sequoia 15.2
  • Xcode 版本:Xcode 16.1
  • Safari 版本: Safari 18.2
  • 开发设置:
    • 带有 macOS 主机应用程序的 Safari Web 扩展
    • 使用 Swift 和 JavaScript 进行开发

任何见解或建议将不胜感激!

预先感谢您的帮助!

swift xcode macos safari-extension safari-web-extension
1个回答
0
投票

您可以尝试使用较低版本的Xcode,有时在最近的版本中会产生一些奇怪的错误。您可以下载并尝试是否可以解决问题:)

© www.soinside.com 2019 - 2024. All rights reserved.