为什么我可以在其他计算机上运行我签名的Safari App Extension,但不是我开发的那个?

时间:2018-04-06 22:14:41

标签: xcode macos safari safari-app-extension

我在Apple’s documentation之后启动了Safari App Extension项目。

我有我的(空)应用程序,以及我的最小扩展名。我已将该应用归档,并使用我的开发者ID进行签名。当我将存档的应用程序复制到朋友的Mac,运行它并启动Safari时,应用程序扩展显示在Safari首选项的扩展程序窗格中(带有父应用程序的图标),启用后,工作正常。

然而,当我在我的Mac上运行应用程序(我开发它)并启动Safari时,除非我在Safari的开发菜单中选中“允许未签名的例外”,否则应用扩展程序不会显示在Safari的扩展程序首选项窗格中,如在this answer中描述 - 当它发生时,它有一个通用的应用程序图标,而不是父应用程序的图标。

虽然我希望最终能够将应用和应用扩展提供给其他人,但我主要是为自己制作。因此,我希望每次启动Safari时都可以使用它而无需选中“允许未签名的例外”。

如何在我开发扩展程序的计算机上的Safari扩展程序偏好设置面板中显示应用程序扩展程序?

1 个答案:

答案 0 :(得分:1)

我在我的用户库文件夹中找到了我的应用和应用扩展程序的调试版本:

~/Library/Developer/XCode/DerivedData/{APP_NAME_FOLLOWED_BY_LONG_STRING}/Build/Products/Debug

删除此文件夹的内容后,重新启动Safari,再次允许未签名的扩展程序,我的应用扩展程序不再出现在Safari的扩展程序首选项中的通用图标。

(我是一个真正的Xcode新手,所以我不知道是否删除调试版本是我可以/应该通过Xcode做的事情。)

然后我再次存档我的应​​用并运行它,然后重新启动Safari。现在我的应用扩展程序显示在Safari的Extensions首选项中,带有正确的图标和所有内容,并在重新启动之间保持启用状态。