#daiizメモ

Scrapboxに夢中

legacy packaged apps ってなんだ

Chrome アプリ開発メモ

拡張機能のページでプロジェクトを読み込んだときにこんなメッセージが出た.

'hoge' is only allowed for extensions and legacy packaged apps, but this is a packaged app.

'hoge'というのは使おうとしていたChrome Apps APIのことで,色々ある.

このメッセージが言いたいことは,

  • API 'hoge' は拡張機能(extensions)または旧版のパッケージアプリ(legacy packaged apps)でのみ使える.
  • しかしこのプロジェクトは,現行のパッケージアプリ(packaged app)である.(→ つまりAPI 'hoge' は使えない)
f:id:daiiz:20160309005235p:plain:h56

こんな状況下で,API 'hoge' を使いたい場合は

  • legacy packaged apps 化する
  • appsではなくてextensions化する

のどちらかの方法が考えられる.しかし, legacy packaged appsはlegacyであり,既に廃止が決定されている.したがってextensionsにするしか道はない.

ちなみに,manifest.json のappフィールドが

"app": {
    "background": {
      "scripts": [
        "background.js"
      ]
    }
}

のような形をしていれば legacy ではなくて,

"app": {
    "launch": {
      "local_path": "index.html",
      "container": "panel"
    }
}

であれば legacy な packaged apps である.

確かに後者はむかし(Chrome アプリが登場したての頃)よく書いていた気がする.