私はchromeワンタイムchromeウォレット支払いを使用して保存します。ユーザーがアプリを購入したかどうかはランタイム中に確認する必要があります。デモ機能か完全な機能かを決定しないかどうか。
chrome identity API documentation によると:
アプリケーションIDを一定に保つには、インストールされたmanifest.jsonのキーをソースマニフェストにコピーする必要があります。
この手順について2つの質問があります。
1)アプリケーションのIDはどのような条件で変更される可能性がありますか?アプリを再インストールして更新しようとしましたが、アプリIDは変わりません。アプリIDを変更する方法がない場合、この手順が必要な理由は何ですか?
2)manifest.json(「キー」フィールドを含む)を使用してZipアーカイブをchromeダッシュボードにアップロードするにはどうすればよいですか?問題は、アップローダーが私にエラーをスローすることです。
エラーが発生しました:アイテムの処理に失敗しました。
キーフィールドはマニフェストでは許可されていません。
Chromeウェブストアにアップロードすると、拡張機能IDは固定され、変更できなくなります。
IDは、最初に作成された.pem
ファイルから派生します(またはChrome= Web Store)が拡張機能を.crx
ファイルにパックしました。「アンパックモード」で拡張機能をロードすると、 IDは予測不能な方法で自動的に生成されます開発中に拡張IDを制御する唯一の方法は、マニフェストファイルの "key"
フィールドを設定することです、 ドキュメントが示唆するように .
既に公開済みである場合Chromeウェブストアで拡張機能を使用している場合、["key"
]フィールドの値は Chrome Extension Source Viewer 。拡張機能をインストールした後、Chrome Webストアの詳細ページに移動し、CRXボタンをクリックしてソースを表示します。 Chrome Extension Sourceビューアーは拡張機能をロードし、コンソールにキーを表示します。このキーは、manifest.jsonに直接コピーして貼り付けることができます。
not published拡張機能がある場合、またはChrome Web Storeを使用したくない場合は、プライベートを生成する必要があります最初にキー。
chrome://extensions/
に移動し、開発者モードを有効にします。.pem
ファイル)をバックアップしてください!アプリ/拡張機能をChromeウェブストアに送信する準備ができたら、次の手順に従います。
manifest.json
はルートに存在する必要があります。つまり、「directory/manifest.json」は不良、「manifest.json」は良好です)。key.pem
!として追加します以降の更新では、Chrome Web Storeはもう必要ないため、「key.pem」をZipファイルに追加しないでください。
うまくいけば、誰かが私よりも良い答えをすることができます。アプリのIDは、最初にウェブストアにアップロードしたときにGoogleによって生成されます。ただし、ローカルで開発する場合と同じIDではありません。 chromeブラウザは他のメカニズムを使用して他のIDを生成しました。
ソースコードディレクトリから展開された拡張機能としてローカルで開発していて、アプリに割り当てられたchrome WebストアのIDを使用する場合、マニフェストに「キー」を配置します多くのAPIはchrome.runtime.id(アプリのID)がストア内のアプリと同じ値であることを期待するため、これが役立ちます。マニフェストに「キー」を残しておくことができます。無視されます。
manifest.json
ファイルのキーフィールドを使用して、展開された拡張機能のロードに問題がある場合。
拡張機能リストにあるが無効になっている場合は、公開されている拡張機能を削除します。それ以外の場合、ローカルの開発者拡張機能はロードされず、エラーは表示されません。その理由は、chromeは拡張機能の重複キーを検出し、サイレントに無視します。