2017-08-14 16 views
1

Microsoft Edgeに既存のChrome拡張機能を移植しています。 拡張機能は、Edgeで一時的な拡張機能としてロードすると機能します。エッジ拡張記号が失敗しました

今、私はそれを梱包して署名したいと思います。パッケージが正常に生成されました。しかし、私は、Windowsアプリケーションの認定キットを使用して、それに署名しようとすると、それが次のエラーで失敗します。

Edge extension manifest.json 
Error Found: The JSON schema validation test detected the following errors: 
Validation failed: Data does not match any schemas from "anyOf" 
Schema location: /allOf/1/dependencies/background/anyOf 
Manifest location: 
Validation failed for extension manifest: Extension\manifest.json 
Impact if not fixed: Microsoft Edge extensions that violate the Windows Store certification requirements can’t be submitted to the Windows Store. 
How to fix: Extension’s manifest.json must include valid entries for all required and specified fields. Please resolve the entries and conflicts above. 

私は拡張子をパックするために使用するコマンド:

manifoldjs -l debug -p edgeextension -f edgeextension -m EdgeExtension\manifest.json 
manifoldjs -l debug -p edgeextension package Test\edgeextension\manifest\ 

私のマニフェストファイル:

{ 
    "author": "Test", 
    "background": { 
     "page": "Agent/Ext/bg-loader.html", 
     "persistent": false 
    }, 
    "content_scripts": [ 
     { 
      "matches": [ 
       "<all_urls>" 
      ], 
      "js": [ 
       "Agent/Content/contentLoader.js" 
      ], 
      "run_at": "document_start", 
      "all_frames": true 
     } 
    ], 
    "content_security_policy" : "script-src 'self'; object-src 'self'", 
    "default_locale" : "en", 
    "description": "Test Web Applications Using Google Chrome", 
    "name": "Test", 
    "permissions": [ 
     "nativeMessaging", 
     "webNavigation", 
     "webRequest", 
     "webRequestBlocking", 
     "tabs", 
     "cookies", 
     "browsingData", 
     "debugger", 
     "<all_urls>", 
     "notifications", 
     "unlimited_storage" 
    ], 
    "version": "1.0.0.0", 
    "-ms-preload": { 
     "backgroundScript": "backgroundScriptsAPIBridge.js", 
     "contentScript": "contentScriptsAPIBridge.js" 
    }, 
    "minimum_edge_version" : "33.14281.1000.0" 
} 

答えて

1

アレクセイ・シドーロフの助けを借りてthis threadから、私はエッジエクステンションに署名する方法を考え出しました。

Note: Please make sure do following steps in PowerShell, not command line.


1.あなたは、Microsoftの開発者向けサイトでアプリのアイデンティティであなたの件名を取得することができ、自己署名証明書

New-SelfSignedCertificate -Type Custom -Subject "CN=Contoso Software, O=Contoso Corporation, C=US" -KeyUsage DigitalSignature -FriendlyName <Your Friendly Name> -CertStoreLocation "Cert:\LocalMachine\My" 

を作成します。

フレンドリ名には任意の文字列を使用できます。

2.輸出証明書

チェック拇印:あなたはセキュリティ上の理由にエクスポートするためのパスワードが必要です

Set-Location Cert:\LocalMachine\My 
Get-ChildItem | Format-Table Subject, FriendlyName, Thumbprint 

。信頼されたルート証明機関に証明書をインストールし

$pwd = ConvertTo-SecureString -String <Your Password> -Force -AsPlainText 
Export-PfxCertificate -cert "Cert:\LocalMachine\My\<Certificate Thumbprint>" -FilePath <FilePath>.pfx -Password $pwd 

3.

「スタート」メニューの「コンピュータ証明書の管理」と入力し、[信頼されたルート証明機関] \証明書に移動します。それを右クリックし、[すべてのタスク]、[インポート]ウィザードを実行してインポートを完了します。

4.(のSignToolは、Windows 10 SDKと一緒にインストールされ、それはあなたのシステムのPATHに存在することを確認してください。)のSignToolを使用してアプリを登録

はあなたの拡張機能のハッシュアルゴリズムを確認します。

エキスをあなたの.appxファイルでAppxBlockMap.xml、HashMethodを確認してください。

<BlockMap xmlns="http://schemas.microsoft.com/appx/2010/blockmap" HashMethod="http://www.w3.org/2001/04/xmlenc#sha256"> 

ハッシュアルゴリズムは、例えば、#後の値である#sha256は、ハッシュアルゴリズムとしてSHA256を使用していることを意味します。

SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.appx 

5.今、あなたは、ダブルクリックして、アプリをインストールすることができます。


公式リファレンス:

Create a certificate for package signing

Sign an app package using SignTool

関連する問題