Safari App Extension不会第二次加载

时间:2019-03-01 02:24:19

标签: xcode safari safari-app-extension

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

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

如果我更改其他值,也会发生相同的情况。如果我保留扩展代码和设置完全不变,则不会发生任何问题。但是,一旦我更改了一些值,即使我将这些设置更改回去,它也会完全中断。

对于我来说,这是在装有最新Xcode的两种不同的Mac(10.13和10.14)上发生的。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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