3

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

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

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

这发生在两台不同的 Mac 上,分别是 10.13 和 10.14 以及最新的 Xcode。

4

3 回答 3

5

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

于 2019-07-03T15:36:27.347 回答
2

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

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

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

于 2019-03-01T05:41:42.353 回答
0

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

于 2019-12-06T09:45:25.270 回答