DartでChromeアプリを作成し、Chrome Store へアップデートしてみました。いくつか、躓いた部分がありましたので、レポートする事にしました。
○Javascript 化した、Chromeアプリが動作しない問題
Dartで作成している段階では、普通に動作していました。しかし、javascriptに変換後はうまく動作しません。
Chromeアプリとしてではなく、ブラウザー上で動作させると、想定した通りに動作するみたいなので、変換に失敗している訳ではなさげ。
[アプリの内容]
以下のようなアプリです。
- UIは、Dart Web toolkit を使用(
http://akserg.github.io/dart_web_toolkit_showcase/build/index.html ) - TCP/UDPを使用
- UPnpを利用して、PortMapする
xx.dart.jsを使用しないで、xx.dart.precompiled.jsを使用
解決方法は簡単で、生成されたJavaScript版のアプリは、「
xx.dart.js」へリンクしている部分を「xx.dart.precompiled.js」に変えると良いみたいです。
※ CPS関連のエラーがでていたのですが、理由は深くは追っていません。
[具体的には]
今回作成したアプリは、
|_web
| |_app.css
| |_app.dart
| |_app.dart.js
| |_app.dart.js.map
| |_app.dart.precompiled.js
| |_app.html
| |_background.js
| |_dart_icon.png
| |_mainview.dart
| |_manifest.json
となっていたのですが、この、app.htmlの中の、「app.dart.js」を、「app.dart.precompiled.js」に変更する事で動作するようになりました。
○Chrome ストアへ登録で必要なこと/もの
以下が詳しいです。
http://www.ibm.com/developerworks/jp/opensource/library/os-extendchrome/
Chrome ストアにデベロッパー登録
開発者登録をしましょう。500円かかります。
https://chrome.google.com/webstore/developer/dashboard
ZIPで固めてパッケージ化する
Chrome用のアプリなので、CRXファイルに固めるのではと推測される方もいるでしょう。しかし、Chromeストアにアップするためには、Javascriptに変換したものを、ZIPで圧縮します。
|_build
| |_web
| | |_ xxx
のwebフォルダー配下を、zipで圧縮します。
unzip -l web.zip とすると、
web/xxx
web/package/xx
..
となる感じです。
画像を用意する
アイコンを用意する(must)
今回、128x128のアイコンを用意しました。
スクリーンショットを用意する(must)
今回は、640x400のスクリーンショットを一枚用意しました。
プロモーションタイル(must)
今回は、440x280の画像を用意しました。
○補足
- Google playと比較すると、かなり早く反映されます。
登録時に、数分で反映されます。とか、最大60分で反映されます。とか通知をうけるのですが、それよりも短い時間で反映された気がします。 - 今回登録したアプリのソースはここ ( https://github.com/kyorohiro/HetimaPortMap )
- 登録したアプリはここ ( https://chrome.google.com/webstore/detail/hetimaportmap/naifildeohmcocnmibaampijofhcohif )
- アイコン作成に使用したアプリはここ ( https://itunes.apple.com/jp/app/art-text-2-lite/id425147621 )