1

Grailsサーバーを介してzipされたアプリケーションを提供することにより、Firefox OSデバイスでアプリをテストしようとしています。ファイルは次のように提供されます。

    response.setContentType("application/x-web-app-manifest+json")
    File file = new File("/path/to/application/package.zip")
    response.setHeader("Content-disposition", "attachment;filename=${file.name}")
    response.outputStream << file.bytes

デスクトップ ブラウザで問題なく zip をダウンロードでき、デバイスでも問題なくダウンロードされているようです。ダウンロード後に次のエラーが発生します。

MANIFEST_PARSE_ERROR

マニフェストを見てみましょう。

{
"version": "0.1",
"name": "App Name",
"description": "App Description",
"launch_path": "/target/index.html",
"icons": {
    "16": "/img/icons/mortar-16.png",
    "48": "/img/icons/mortar-48.png",
    "128": "/img/icons/mortar-128.png"
},
"developer": {
    "name": "Example Dev",
    "url": "http://example.com"
},
"installs_allowed_from": ["*"],
"default_locale": "en",
"permissions": {
}
}
4

1 に答える 1

2

マニフェストは (一見) 問題ないように見えますが、コードからは、マニフェストの代わりに zip コンテンツを送信しているように見えますか?

パッケージ化されたアプリには 2 つのマニフェストがあることに注意してください。zip 内の Web アプリ マニフェストと、アプリのインストール元を記述するミニ マニフェストです。独自のページからパッケージ化されたアプリをインストールする場合は、最初にミニマニフェストを提供する必要があります。これにより、Firefox OS に .zip ファイルの取得元が通知されます。詳細はこちらをご覧ください:

https://developer.mozilla.org/en-US/docs/Web/Apps/Packaged_apps#Testing_packaged_app_installation_%28without_Simulator%29

または、Firefox マーケットプレイスから .zip アプリを送信すると、ミニ マニフェストが生成されます。

zip パッケージが有効であることを確認するには、アプリ バリデーターを使用できます: https://marketplace.firefox.com/developers/validator

于 2013-07-12T04:43:05.550 に答える