現在、ユーザースクリプトをChrome拡張機能に更新していますが、新しいIDが異なるため、古い拡張機能は更新されませんが、新しい拡張機能が追加されます。
ユーザースクリプトをChrome拡張機能に変換し、同じIDを維持する方法はありますか?
かりうのキーファイルがないので可能だと思います
が、どうやって?
現在、ユーザースクリプトをChrome拡張機能に更新していますが、新しいIDが異なるため、古い拡張機能は更新されませんが、新しい拡張機能が追加されます。
ユーザースクリプトをChrome拡張機能に変換し、同じIDを維持する方法はありますか?
かりうのキーファイルがないので可能だと思います
が、どうやって?
ユーザースクリプトは、ロード時にChrome拡張機能に変換されます。同じIDで拡張機能を作成および維持するには、次の手順に従います。
chrome://extensions/
してアクティブにします。@version
)。--user-data-dir=...
、にアクセスしてください...
。/tmp/
または)%tmp%
。手順6〜7はオプションです。これらは、ユーザースクリプトが特別なフラグが設定された真の拡張子に変換されることを示すためにのみ含まれています。マニフェストバージョンに関する赤い警告にも気付くでしょう。これを修正するには、を編集manifest.json
して追加し"manifest_version": 2,
ます。したがって、私たちの場合:
...
"converted_from_user_script": true,
"description": "Description of user script",
"key": "eYxnPzfSPtfL3ji4nQX3ujTXpzz3YQ6dVlvHWf1gvW8=",
"name": "Userscript",
"version": "1.0",
"manifest_version": 2
}
これで、Chrome拡張機能のように動作するChrome拡張機能が追加されました。公式ドキュメントの手順に従って、パッケージを更新してください。
パッケージの更新
拡張機能の更新バージョンを作成するには:
- のバージョン番号を増やし
manifest.json
ます。- 次のURLにアクセスして、拡張機能の管理ページを表示します:chrome://extensions
- [パック拡張]ボタンをクリックします。ダイアログが表示されます。
- [拡張機能のルートディレクトリ]フィールドで、拡張機能のフォルダへのパスを指定します(例:
c:\myext
。- [秘密鍵ファイル]フィールドで、
.pem
この拡張子用にすでに生成されているファイルの場所を指定します(例:c:\myext.pem
。- [ OK]をクリックします。
以前にパッケージ化された拡張機能をChromeウェブストアにアップロードする
Chromeデベロッパーダッシュボードを使用して、以前に自分でパッケージ化した拡張機能をアップロードできます。ただし、特別な手順を実行しない限り、Chromeウェブストアでの拡張機能のIDは、作成したパッケージでのIDとは異なります。この異なるIDは、拡張機能パッケージを配布した場合に問題になる可能性があります。これにより、ユーザーは拡張機能の複数のバージョンをインストールでき、それぞれに独自のローカルデータが含まれるためです。
拡張IDを同じに保ちたい場合は、次の手順に従います。
.crx
ファイルの作成時に生成された秘密鍵の名前をに変更しますkey.pem
。- 拡張
key.pem
機能のトップディレクトリに配置します。- そのディレクトリをZIPファイルに圧縮します。
- Chromeデベロッパーダッシュボードを使用してZIPファイルをアップロードします。
拡張機能のextensionIDは"key"
、マニフェストファイルのパラメータを介して制御できます。解凍された拡張機能とパックされた拡張機能に同じIDを設定する最も簡単な方法は、ドキュメントにも記載されています。
keyこの値は、開発中に読み込まれるときに、拡張機能、アプリ、またはテーマの一意のIDを制御するために使用できます。
注:通常、この値を使用する必要はありません。代わりに、相対パスと を使用してキー値が重要にならないようにコードを記述してください
chrome.extension.getURL()
。適切なキー値を取得するには、最初に.crxファイルから拡張子をインストールします(拡張子をアップロードするか、手動でパッケージ化する必要がある場合があります)。次に、ユーザーデータディレクトリで、ファイルを調べます
Default/Extensions/<extensionId>/<versionString>/manifest.json
。そこに入力されたキー値が表示されます。
key
フィールドが存在しない場合、ランダムに生成されます。次に、extensionIDがこのキーから生成されます。ここでは、extensionIDを生成するためのアルゴリズムについて説明します。アルゴリズムの性質上、逆の順序で実行することはできません(extensionID-> key
)。