苹果:如何为Safari转换现有的Web扩展

2021-01-06 13:07:01

创建Safari Web扩展程序时,您可以帮助人们更快,更高效地完成常见的在线任务-同时使用与Google Chrome,Mozilla Firefox和Microsoft Edge浏览器的扩展程序中相同的扩展模型和API。

如果您有现有的Web扩展程序,希望准备在Mac App Store中进行分发,则可以轻松地开始使用Xcode 12中的转换器工具。这是解决方法。

在开始之前,请确保已安装最新版本的Xcode 12,命令行工具和Safari14。准备就绪后,您可以在终端应用中运行以下命令:

转换器工具将在./path/to/my/extension/manifest.json中搜索扩展程序的清单,并为您的Xcode项目生成默认配置。如果配置显示正确,请在提示符下键入yes,然后按Return键。如果不是,请键入no,然后您可以进入转换器工具的交互模式以自定义配置。

注意:验证密钥在转换过程中,safari-web-extension-converter将在清单中查找已安装的Safari版本不支持的任何密钥。如果Xcode发现任何问题,该应用程序将显示警告消息。如果收到此消息,请考虑受影响的键对于扩展功能是否至关重要。您可能仍然可以保留这些键,并使所有操作顺利进行,但是请务必测试您的扩展以确认。

Safari Web扩展程序需要一个容器应用程序,以便您可以轻松地在Mac App Store上分发扩展程序。在转换过程中,Xcode会自动创建并打开一个包含您的扩展文件的容器应用程序项目。在这里,您可以测试扩展程序,进行任何必要的代码更改,更新扩展程序的图标,以及上载容器应用程序以通过Mac App Store分发。

再次测试,测试和测试在Xcode项目中,您可以通过按Command-R或屏幕左上方的“播放”按钮来构建和运行扩展程序。

您的容器应用程序具有一个打开Safari Extensions首选项的按钮。选择此按钮以打开Safari并在浏览器中启用您的扩展程序。

注意:如果这是您首次通过Xcode测试扩展,则需要在Safari中启用对未签名扩展的支持。这样做,请按照下列步骤操作:

导航到“开发”菜单,然后选择“允许未签名的扩展名”。您可能需要输入管理员密码才能进行更改。

进行任何代码更改默认情况下,您的Xcode项目引用扩展程序的现有内容以及本机Swift或Objective-C代码来创建容器应用。测试之后,您可以对该项目进行任何必要的更改;您进行的任何更改将在您下次构建Xcode项目时自动显示为Safari Web Extension的一部分。

更新iconXcode将使用清单中列出的所有扩展程序图标作为您的应用程序图标,这些图标也将显示在Mac App Store列表中。但是,由于Safari Web Extension图标通常较小,因此您可能需要更新为该图像的高分辨率版本以获得最佳外观。

要更改图标,请选择Xcode侧栏中的Assets.xcassets文件夹,然后将新图标拖到适当大小的图像孔中。

将任何其他文件添加到Xcode项目中如果转换后需要在扩展程序中添加其他资源或代码文件-例如,用户界面使用的图像或转换过程中遗漏的其他依赖项-您还需要手动将这些文件包括在您的Xcode项目中Xcode项目。

为此,请在Finder中选择所有其他文件,并将它们拖到Xcode项目中位于左侧栏中的Resources文件夹中。 在文件对话框中取消选中“如果需要复制项目”,以确保这些文件自动与您的应用关联。 准备共享扩展程序时,请使用Apple Developer帐户登录App Store Connect,然后将容器应用程序上传到该应用程序以进行分发。 在提交到Mac App Store之前,请记住阅读App Store指南; Apple会检查所有扩展和扩展更新,以验证它们能否正常运行。