Safari 应用扩展不会第二次加载



我一直遇到一个奇怪的问题,第二次运行我的 Safari 应用程序扩展时,它不会显示在 Safari 中。

  1. 打开 Xcode。
  2. 新>项目。
  3. 在"其他"下,选择"Safari扩展应用程序",然后单击"下一步"。
  4. 在此"产品名称"屏幕上输入您想要的任何内容,然后单击"下一步"。
  5. 点击"创建"。
  6. 通过单击 Xcode 左上角的"播放"图标来运行项目。
  7. 它将打开一个小应用程序,底部有一个按钮,上面写着:"在Safari扩展程序首选项中打开"。
  8. 它可能不会出现。如果是这样,请跳到 10。
  9. 转到Safari标题菜单中的开发,单击"允许未签名的扩展"。
  10. 出现后,选中该框以启用它。
  11. 通过单击左上角的停止图标来阻止 Xcode 运行。
  12. 更改插件的信息列表中的值,例如将SFSafariWebsiteAccess.Level从"一些"更改为"全部"。
  13. 点按 Xcode 中的"播放"图标。
  14. Safari 会告诉您扩展权限已更改。确认这些更改,扩展将不再显示。

如果我更改其他值,也会发生同样的事情。如果我保持扩展代码和设置完全不变,则不会出现问题。但是一旦我更改了一些值,即使我将这些设置更改回来,它也会完全中断。

这发生在两个不同的Mac上,10.13和10.14都带有最新的Xcode。

我在Mojave上的Xcode上遇到了这个确切的问题。我所要做的就是转到产品>清理构建文件夹。这可能与您正在做的事情相同,但容易一些。

我能够纠正此问题的唯一方法是转到您的构建目录并删除构建文件。

您首先必须停止项目,然后删除此目录: ~/library/Xcode/DerivedData/[YOUR_PROJECT_NAME]/Build/Projects/debug

YOUR_PROJECT_NAME将是您的项目名称加上一堆随机字符,因此您需要自己搜索此文件夹的真实名称。

您可以编辑_____extension.appex的方案,并将其可执行文件设置为Safari.app。每次构建/运行扩展(而不是包装器)时,都会打开一个新的 Safari 实例。这还将让 Xcode 控制台显示扩展的输出。不过要小心;如果 Safari 崩溃,您可能会丢失打开的所有标签页。这样,您既不必清理构建文件夹(也不必手动删除 Finder 中的文件)。

相关内容

  • 没有找到相关文章

最新更新