Safari向けに既存のWeb Extensionを変換する方法

Safari Web Extensionを作成すると、Google Chrome、Mozilla Firefox、およびMicrosoft Edgeブラウザーの拡張機能と同じ拡張機能モデルとAPIを使用しながら、一般的なオンラインでのタスクをより迅速かつ効率的に実行できるようになります。

Mac App Storeでの配布の準備をしたい既存のWeb Extensionがある場合は、Xcode12の変換ツールで簡単に始められます。ここでその方法を説明します。

Safari Web Extensionsの導入

Watch now

Safari web extensions

Extensionを変換する

まず初めに、Xcode 12、コマンドラインツール、およびSafari 14の最新バージョンがインストールされていることをご確認ください。準備ができましたら、ターミナルAppで次のコマンドをターミナルAppで実行します。

```xml
xcrun safari-web-extension-converter /path/to/my/extension/
```

変換ツールは、Extensionのマニフェストを./path/to/my/extension/manifest.jsonで検索し、Xcodeプロジェクトのデフォルトの構成を生成します。構成が正しいと思われる場合は、プロンプトでyesと入力し、Return(リターン)キーを押します。そうでない場合は、no入力します。すると、変換ツールはインタラクティブモードを実行し、そこで構成をカスタマイズすることができます。


メモ:キーをご確認ください_ 変換プロセス中に、 safari-web-extension-converterはマニフェストを調べて、インストールされているSafariのバージョンでサポートされていないキーを探します。Xcodeがそのようなキーを検出すると、Appに警告メッセージが表示されます。警告メッセージが表示された場合は、影響を受けるキーがExtentionの機能にとって重大な影響を及ぼす恐れがあるかどうかを検討してください。これらのキーをそのままにしたままで、すべての機能をスムーズに実行できる場合もありますが、必ずExtensionをテストし、正常に機能するかどうか確認するようにしてください。


変換されたExtensionを調整する

Safari Web Extensionsには、コンテナAppの使用が欠かせません。コンテナAppを使用すると、Extensionを簡単にMac App Storeで配信することができます。Xcodeは、変換プロセスの一環として、コンテナAppのプロジェクトを、自動的にExtensionファイルを含めて作成し、開きます。このプロジェクトでは、Extensionをテストしたり、必要なコードを変更したり、Extensionのアイコンを更新したり、コンテナAppをアップロードしてMac App Storeで配信したりすることができます。

十分なテストの実施 Xcodeプロジェクト内で、画面の左上部分にあるCommand-Rまたは Playボタンを押すと、Extensionをビルドして実行することができます。

また、コンテナAppには、Safari Extentionの環境設定を開くボタンが表示されています。このボタンを選択してSafariを開き、ブラウザでExtensionを有効にしましょう。

メモ:XcodeでExtensionを初めてテストする場合は、Safariで署名されていないExtensionのサポートを有効にする必要があります。サポートを有効にするには、次の手順に沿って行ってください。

  1. Safariを開きます。
  2. Safari > Preferences を選びます。
  3. Advancedのタブに移動します。
  4. ”Show Develop menu in menu bar”のチェックボックスをチェックします。
  5. 開発のメニューに移動し、”Allow Unsigned Extensions.”を選びます。変更をするため、管理者のパスワードを入力しなければならないかもしれません。

コードを変更する デフォルトでは、XcodeプロジェクトはExtensionの既存のコンテンツおよびネイティブのSwiftまたはObjective-Cのコードを参照して、コンテナAppを作成します。テストを行った後、Xcodeプロジェクトに必要な変更を加えることができます。変更内容は、次回Xcodeプロジェクトをビルドするときに、Safari Web Extentionの一部として自動的に表示されます。

アイコンを更新する Xcodeは、マニフェストにリストされているExtensionアイコンをAppアイコンとして使用します。このアイコンは、Mac App Storeのリストでも同じように表示されます。ただし、Safari Web Extentionのアイコンは通常小さいため、アイコンの見た目をより良いものにするために、画像をより高い解像度のものに更新することをお勧めします。

Xcodeでアイコンをアップロードする画面のスクリーンショットを表示しています。

アイコンを変更するには、XcodeのサイドバーでAssets.xcassetsフォルダを選択し、新しいアイコンを適切なサイズのイメージウェルにドラッグします。

Xcodeプロジェクトにファイルを追加する ユーザーインターフェイスで使用されている画像や、変換中に失われた関連性のあるファイルなど、変換後でExtensionにリソースやコードファイルを追加する必要がある場合、これらのファイルをXcodeプロジェクトに手動で追加する必要があります。

ファイルを手動で追加するには、Finderで追加するファイルを選択し、左側のサイドバーにあるXcodeプロジェクト内のResourcesフォルダにドラッグします。ファイルダイアログで「必要に応じてアイテムをコピー」のチェックを外して、これらのファイルがAppに自動的に関連付けられるようにします。

Extensionを配信する

Extensionを共有する準備ができたら、Apple DeveloperアカウントでApp Store Connectにサインインし、配信するコンテナAppをアップロードします。Mac App Storeに送信する前に、App Storeのガイドラインを必ずご確認ください。Appleでは、すべてのExtensionおよびExtensionのアップデートを検証し、それらが確実に機能するかどうかを確認しています。

Learn more about submitting extensions to the Mac App Store