LG SmartTVアプリの作り方(まだ動かないけど^^;)

# 目標
とりあえず､LG SmartTV用のアプリを作り､SmartTVで動かす!!

ちなみにLG SmartTVはwebOSで動いている｡
なので､HTML+Javascriptでアプリを開発可能｡

#必要なもの
* インターネットにつながったLG SmartTV
* PC
* USBメモリ

# 参考サイト
[Getting Started](http://developer.lge.com/webOSTV/develop/web-app/getting-started/)
[Web SDK v2.0.0](http://developer.lge.com/webOSTV/sdk/web-sdk/)
[Sample source](http://developer.lge.com/webOSTV/develop/web-app/code-samples-html/)
[Test with your TV](http://developer.lge.com/webOSTV/develop/web-app/app-test/)

# SDKのダウンロード&インストール
[Web SDK v2.0.0]からInstallerまたはSDKをダウンロードし､インストール｡
なお､中には､Virtual BoxのwebOS TVのEmulatorイメージや､IDEが含まれているが､今回はCLIツールを使用する｡
[Windows64bit版SDK](http://developer.lge.com/webOSTV/sdk/web-sdk/)をダウンロードし､適当なディレクトリで解凍し､中に入っている`webos_cli_tv.zip`を更に解凍しておく｡
![SDK.png](https://qiita-image-store.s3.amazonaws.com/0/78540/7917af9d-f90d-592f-3044-bcf120e78d05.png)

# アプリを作る
まずは､基本ということで[App Development](http://developer.lge.com/webOSTV/develop/web-app/app-developer-guide/)をよく読んで､HTMLアプリを作る｡
面倒な人は､[Sample source](http://developer.lge.com/webOSTV/develop/web-app/code-samples-html/)から適当なサンプルをダウンロードして使用する｡

# パッケージング
自分のSmartTVで動かすためには､まずはパッケージングする必要がある｡
[Packaging a Web App for Deploying](http://developer.lge.com/webOSTV/sdk/web-sdk/webos-tv-cli/testing-web-app-cli/)を参考に
`<webos_cli_tv.zip解凍ディレクトリ>\ares-package ./アプリの格納フォルダ`
を実行する｡そうすると一瞬で

```Creating package com.yourdomain.app_0.0.1_all.ipk in ./```

のようなメッセージが表示され､パッケージング完了｡

# DRMパッケージの作成
## Developer Site登録
[App Test](http://developer.lge.com/webOSTV/develop/web-app/app-test/)を見ると､パッケージしただけでは､TV本体にインストールは出来ないらしく､DRMパッケージというものを作成する必要があるらしい｡しかもLG Developerサイトに登録必要｡
ということで､[LG Developer Site](https://developer.lge.com/secure/Login.dev]から[Don’t have an LG Developer account? Register now.)から新規登録｡
メールアクティベーション後､[LG Developer Site](https://developer.lge.com/secure/Login.dev)からログイン｡

ちなみに､ユーザIDやパスワードなどは､Validationチェックボタンを押下して､チェックする必要があり｡

## アプリ登録
[Resource Center]>[webOS TV]>[Test(App Test)]
![AppTest.png](https://qiita-image-store.s3.amazonaws.com/0/78540/a1a8ed3f-8db9-43bd-a6fd-731077ab8b9e.png)
の一番下の[New App Test]をクリック｡
あとは､[APP Test](http://developer.lge.com/webOSTV/develop/web-app/app-test/)の[Step 1. Upload an app on App Test page]で､[パッケージング]した､ipkファイルをアップロード｡
アップロード後に遷移した画面の一番下の[Download DRM applied file]から､zipファイルをダウンロードして､解凍｡`com.mycompany.xxx`のようなappinfo.jsonで指定したidのフォルダができていることを確認する｡

#TV登録
## LG Smart World登録
アプリをTVに登録するためには[LG Smart Wrold](http://jp.lgappstv.com/appspc/main/main/main.lge)にユーザ登録する必要があるらしい｡**またかよ｡登録作業が多すぎな気がする｡** 
TVからでもPCからでも登録可能だが､入力のし易さを考えて､PCから登録｡TV側でそのアカウントを使用してログイン｡

**利用規約､プライバシーポリシーはかなり微妙なので､よく読んで納得できる方のみ登録を｡
ライトユーザは登録情報の変更も削除もできないという追加の規約が表示されたしなぁ｡**

## USBメモリにアプリをコピー
[Step 3. Download the DRM-packaged file to USB](http://developer.lge.com/webOSTV/develop/web-app/app-test/)を見ると､
TVにアプリを登録するには､USBメモリに､所定のフォルダ階層を作成して､アプリをコピーする必要があるらしい｡
PCにUSBメモリを接続して､以下フォルダを作成する｡
`/developer/apps/usr/palm/applications`
(このフォルダ名にwebOSがたどった経緯が残っていますなぁ^^;)

上記フォルダ以下にDRMパッケージを解凍したフォルダ`com.mycompany.xxx`をそのままコピー｡USBメモリは
`/developer/apps/usr/palm/applications/com.mycompany.xxx`
のようなフォルダ構成になっているはず｡

## TVにアプリを登録
いよいよ､TVにアプリを登録する｡
[Step 4. Test the app on webOS TV](http://developer.lge.com/webOSTV/develop/web-app/app-test/)
の通りに
> 2.Insert the USB into TV.
3.When the SmartShare popup appears, click X or wait for the popup to disappear.
4.You can see the app is displayed on Launcher at 9th position in the list.

USBをTVに挿入してみたけど､アプリが登録されない｡
[FAQ](http://developer.lge.com/webOSTV/common-page/faqs/faq-2814)に従いチェックして､Emulatorでも動かしてみたが､特に問題なさそう｡
どこが間違っているんだろうか｡

なお､[App Test FAQ](http://developer.lge.com/webOSTV/common-page/faqs/faq-2814)によると､DRM解除のためのキーが必要なので､アプリの登録時にはTVはインターネットにつながっている必要がある模様｡

#環境
|環境|バージョン|その他|
|:------|:------|:------------:|
|PC|Windows8.1 Pro 64bit||
|TV|28LF4930|http://www.lg.com/jp/tv/lg-28LF4930|