Tizen SDK for Wearable による Samsung Gear アプリ開発(の準備)

- - - -

## はじめに

前回、[Tizen SDK for Wearable によるウェラブルデバイス開発(の準備)](http://qiita.com/Suna/items/9831c6abc0e4e66b02de) にて、エミュレータでの動作確認まで行いましたが、今回は [Samsung Gear 2](http://www.samsung.com/jp/consumer/mobilephone/gear/gear/SM-R3800VSAXJP) を使った実機でのアプリ動作の確認を行います。

Samsung Gear で作成できるアプリケーションは以下の種類があり、Android 端末と組み合わせて複雑なこともできるようですが、今回は一番単純な "Standalone" での確認を行います。

1. Linked(Master-Follower)
2. Integrated
3. **Standalone**

Gear 2 実機へのアプリ転送は、あくまで開発・デバッグ用で PC からの USB 接続での転送になります。
実際のリリースの際は GALAXY Apps へ登録しての配信になるかと思いますが、今回は行いません。


## 開発環境

| ソフトウェア | バージョン                     |
|:-----------|:-----------------------------|
| OS         | OS X Yosemite (10.10.1)      |
| Java       | 1.8.0_25                     |
| Tizen SDK  | Tizen SDK for Wearable 1.0.0 |

※ 前回からは、Java のバージョンが新しくなっています。

## 実行するプロジェクトの準備

今回も前回([Tizen SDK for Wearable によるウェラブルデバイス開発(の準備)](http://qiita.com/Suna/items/9831c6abc0e4e66b02de))同様に「Basic Application」を使用します。必要であればプロジェクトの作成からビルドまではそちらを参照してください。

## Gear 2 実機へのアプリ転送

### 実機側の準備

**設定 > Gearの情報 > USBデバッグ**

チェックボックスにチェックを入れます。

### 方法1. sdb コマンドでの転送

#### 接続確認

Gear 2 と PC をつなぎ、以下のコマンドでつながっていることを確認します。

```bash
$ /path/to/tizen-wearable-sdk/tools/sdb devices
List of devices attached
4534315d4100fdbd    	device    	SM-R380
```

「4534315d4100fdbd」というのが端末のシリアルNo.になり、これを使用して操作を行います。

#### アプリのインストール

Basic アプリを Gear 2 にインストールします。

```bash
$ cd /path/to/Basic/
$ /path/to/tizen-wearable-sdk/tools/sdb --serial 4534315d4100fdbd Basic.wgt
ulled                     Basic.wgt	100%	     32KB
1 file(s) pulled. 0 file(s) skipped.
Basic.wgt                       1698 KB/s (33061 bytes in 0.019s)
path is /opt/usr/apps/tmp/Basic.wgt
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[start] val[install]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[3]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[22]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[25]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[33]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[37]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[40]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[44]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[48]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[55]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[62]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[icon_path] val[/opt/usr/apps/1htW4zIyoa/shared/res/1htW4zIyoa.Basic.png]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[66]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[81]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[85]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[88]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[92]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[96]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[install_percent] val[100]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[end] val[ok]
spend time for pkgcmd is [4982]ms
```

これで Gear 2 に Basic アプリが転送されました。

#### アプリのアンインストール

インストール時の表示に pkgid[ **1htW4zIyoa** ] とありますが、これを指定してアプリを削除できます。

```bash
$ /path/to/tizen-wearable-sdk/tools/sdb --serial 4534315d4100fdbd uninstall 1htW4zIyoa
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[start] val[uninstall]
__return_cb req_id[1] pkg_type[wgt] pkgid[1htW4zIyoa] key[end] val[ok]
spend time for pkgcmd is [1727]ms
```


### 方法2. 証明書を作成・登録して IDE から実行

#### DUID を確認

Gear 2 をつなぐと、IDE の Connection Explorer に「端末のシリアルNo.(モデル名)」と表示されます。

それを選択後、コンテキストメニューから **Properties** を選択すると別ウィンドウが開きますので、DUID を記録しておきます。

![2014121303.png](https://qiita-image-store.s3.amazonaws.com/0/20418/5ee3ab4e-012b-0291-a704-b1a0a5587903.png "2014121303.png")

#### 開発者・デバイス証明書の作成・設定

IDE のツールバーから、 **Register Certificate** を選択します。

![2014121301.png](https://qiita-image-store.s3.amazonaws.com/0/20418/203007ef-59bd-6166-36a0-dd9b56f57c65.png "2014121301.png")

「Request and Register a Certificate」 ウィンドウが開きます。

![2014121302.png](https://qiita-image-store.s3.amazonaws.com/0/20418/500264c6-83ad-b87b-0e2d-d9cd512637c2.png "2014121302.png")

#### 開発者証明書の作成

1. **「Generate a certificate signing request(CSR file).」** ボタン押下
2. ラジオボタンは **「Generate a new certificate signing request」** を選択
3. **「Next >」** ボタン押下
4. 必須項目の **「Name」「Password」「Password confirm」** を入力
5. **「Finish」** ボタン押下

tizen-wearable-sdk-data/keystore/ に **author.csr** が作成されます。

#### 署名要求

1. **「Request the certificate」** ボタン押下
2. Webビューが開くので、Samsung Account でサインイン
3. フォームから **auther.csr** を選択し、 **「Submit」** ボタン押下でアップロード
4. 「[Samsung Tizen] Certificate is issued」というメールが届くので、添付の **author.crt** を保存

#### デバイス証明書の作成

1. **「Request a device profile」** ボタン押下
2. Webビューが開くので、Samsung Account でサインイン
3. **「Privilege Level」「Developer Type」** の値を選択、 **「Device ID」** に先に確認した **DUID** を入力し、 **「Submit」** ボタン押下
4. 「[Samsung Tizen] DEVICE PROFILE IS ISSUED」というメールが届くので、添付の **device-profile.xml** を保存。HTMLメール本文中にパスワードが書いてあるので注意

#### 証明書(p12ファイル)の作成

1. **Authoer / Certificate file:** に authoer.crt のパスを指定 (「Browse...」ボタンは反応しないことがあります)
2. 開発者証明書作成時のパスワードを入力
3. **Device Profile / Certificate file:** に device-profile.xml のパスを指定 (「Browse...」ボタンは反応しないことがあります)
4. device-profile.xml を受け取ったメールに書かれたパスワードを入力
5. **「OK」** ボタン押下

tizen-wearable-sdk-data/keystore/ に **author.p12** と **distibutor.p12** が作成されます。

#### IDE に証明書を設定

1. メニュー **Tizen IDE for Wearable > Preferences...** を選択
2. 左側のリストから **Tizen SDK > Security Profiles** を選択
3. 右側の **Profiles** に設定を追加
4. **Author Certificate** に author.p12 ファイルを指定
5. **Distributor Certificates** に distributor.p12 ファイルを指定
5. **「OK」** ボタン押下

#### Gear 2 実機に証明書を設定

1. Connection Explorer から Gear 2 を選択
2. コンテキストメニューから **Permit to install applications** を選択

#### IDE からプロジェクトを再ビルド・実行

## 感想

* やっと何とかエミュレータ・実機の環境ができました。ここからアプリ作り本番になるわけですが。
* それにしても日本語の情報がないですね。