0

我正在尝试开发我的第一个 Safari 应用程序扩展,我遵循 Apple 关于构建 safari 应用程序扩展的文档,我的 Xcode 版本是 11.5。看来该扩展程序有效,因为我可以看到 Safari 导航栏上加载了扩展程序按钮,并且我可以得到“Hello World!” messageReceived当在 Safari 中加载页面时,来自 SFSafariExtensionHandler 子类方法中注入的 script.js 。到目前为止,在添加 Safari 扩展时 Xcode 自动生成的所有代码都很好。但是,对 script.js 的任何修改,比如添加一个新的空行,或者只是重复相同的 dispatchMessage 调用,都会导致扩展无法运行,如下面的代码:

document.addEventListener("DOMContentLoaded", function(event) {
    safari.extension.dispatchMessage("Hello World!");
    safari.extension.dispatchMessage("Hello World!");
});

这是非常令人沮丧的,特别是考虑到自动生成的扩展代码已经生成了大量的警告和错误消息,即使它看起来正在工作。但我确实看到 App Store 中有很多 Safari 扩展产品,所以有人能指出我正确的方向吗?

4

1 回答 1

1

想通了:每次修改脚本时,我们都必须清理构建。然后扩展调试运行再次工作。如果我们修改 info.plist 并在调试运行中获取代码签名错误,清理也可以工作。

于 2020-08-22T14:13:31.470 回答