OculusGoのリリース用バイナリ作成→ストア審査申請→公開までの手順

他にも画像付きだったりしてわかりやすい記事はあるのですが、リリースしようと思い立ってから実際にストア公開まで手順が1箇所にまとまっているエントリが無いのでまとめてみました。
無料アプリですが、実際にこの手順でストアの審査を通っています。

環境: Unity 2018.1.5f1 (64-bit) Personal / OculusUtilities(1.26.0 2018/06/20)

## 概要

### リリースの種類

Oculus公式からアプリを公開する手段は、大きく分けて３種類ある。
ここでは「Oculusストア」のリリース手順を書く。

- Oculusストア：公式ストアで配布。ストアから選択するだけで、誰でもダウンロードできる。
- Oculusキー：開発者は「Oculusキー」という25文字のキーを発行できるようになる。この発行したキーを公式サイトに打ち込んだ人だけが、アプリをダウンロードできる。即売会で配布する場合などに便利(このキーを有料で販売しても問題ない)。審査が少しゆるい。
- リリースチャンネル：開発版を特定ユーザに評価してもらうための公開方法。開発者の指定したメールアドレスのユーザに対してのみ配布する。審査は無くapkのアップロードさえ成功させれば、配布が行える。

### リリース流れ

1. リリースビルド(申請用のapk)を作成する。

2. デベロッパーサイトへ、アプリapkと必要なメタデータ(説明画像など)をアップロード

3. デベロッパーサイトでレビュー申請

4. 審査待ち
  以下のそれぞれが完了した段階でメールが来る。
  - テクニカルレビュー：技術的ガイドラインを満たしているか審査
  - コンテンツレビュー：アプリの洗練度、有用性の審査
  - パブリッシングレビュー：リリース日、価格の調整

5. リリース (ストア公開)

※一度審査を通って公開された後は、apkのアップデートに関しては再審査なしで行える。メタデータ(バナー画像、説明文、トレイラー動画等)に関しては更新時に審査が必要。



## ストア申請手順

### リリースビルドの設定 (初回のみ)

https://developer.oculus.com/ にログイン
Manage→新しいアプリを作成
　「VR」および未所有商標の追加を避ける
　「Oculus」という言葉は使わない
　アプリの名前がす​​べてのロゴや視覚的なアセットに一致するようにする

Unityを起動

Tools＞Oculus＞Create store-compatible AndroidManifest.xml
　Assets/Plugins/Android/AndroidManifest.xml が作成される

Assets/Plugins/Android/AndroidManifest.xmlをテキストエディタで開く
manifestの行を以下のように書き換え

	<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	    package="(1)"
	    android:versionCode="(2)"
	    android:versionName="(3)"
	    android:installLocation="auto"
	>

(1)～(3)は、Edit→ProjectSetting→Player
OtherSetting の Identification の上3つと同じ値に書き換え


Edit > ProjectSetting > Player > Publishing Settings
　Creae a new keystore ...          : ON
　Browse Keystore                   : 保存先を選択
　Keystore password/comfirm         : パスワードを決める（●2回目以降のリリースビルドに必要なので、控えておくこと！
　Alias                             : Create a new key ……以下を入力後、あらためて作成したものを選択し、パスワードを入力
　　Alias               -> Keyの名前
　　Password            -> Keyのパスワードを入力
　　Confirm             -> パスワードの確認
　　Validity (years)    -> Keystoreの使用する年数を記入(50など長い年数を入れておけば問題ない)
　　First and Last Name -> 作者名
　　Organizational Unit -> 部署名（個人の場合は空欄で大丈夫）
　　Organization        -> 企業名
　　City or Locality    -> 会社の所在地を入力します。
　　State or Province   -> 会社の市町村名を入力します。
　　Country Code (XX)   -> 国のコードを入力します（日本の場合は、アルファベットで「jp」と記入します）

### ビルド・アップロード (毎回)

File > Build Settings > Build
　ビルド物を作成

https://dashboard.oculus.com/ へログイン

Manage > 自分のユーザ名 > アプリ名 > ビルドの管理
　ビルドをアップロード
　STORE→「...」→新しいバイナリをアップロード

アップロード後しばらくして、テストのステータスが「完了」になれば成功。
STOREではなくアルファ版やベータ版にアップロードすると、「リリースチャンネル」でのアプリ配布が行える。


### 申請情報の登録

https://dashboard.oculus.com/ へログイン

Manage > 自分のユーザ名 > アプリ名 > アプリを送信
※ここで「！」になっているセクションを入力していく。

- 要件
  適当に登録

- このアプリについて
  適当に登録

- コンテンツ評価
  外部サイトのレーティング評価質問に回答する。「暴力的な内容を含むか」などの質問に答えて対象年齢を決める。

- 翻訳
  アプリの説明を入力

- アセット
以下のpng画像を用意する。
基本的に特別なソフトで作る必要はなく、Windowsペイントで作った画像でも審査は通った。
……が、ロゴについてだけは背景透過の必要があったので https://www.peko-step.com/tool/alphachannel.html で透過pngを作成した。

|種類                            |英語名              |サイズ・備考
|--------------------------------|--------------------|--------------------------
|ロゴ                            |LogoTransparent     |360～9000 x 1440 px（※背景は透過させる）
|アイコン                        |Icon                |512x512 px（※背景は透過せず、角丸にしない＝正方形のみ）
|ストアカバーアート              |-                   |ストアカバーアートは以下3種類を用意
|    横型                        |CoverLandscape      |2560x1440 px（※下360px がストアのオーバーレイ範囲なので、ロゴを置かない）
|    正方形                      |CoverSquare         |1440x1440 px（※下360px がストアのオーバーレイ範囲なので、ロゴを置かない）
|    縦型                        |CoverPortrait       |1008x1440 px（※下360px がストアのオーバーレイ範囲なので、ロゴを置かない）
|VR画像(横型)                    |Small               |1080x360 px
|ヒーローアート                  |HeroArt             |3000x900 px (※幅:540+1920+540=3000 px, ロゴを置くときは中央に置く)
|スクリーンショット(5枚)         |ScreenShots         |2560x1440 px

- 価格設定と配信
  無料の場合は不要。

- アプリコンテンツのシェア
  保存をクリック。

「審査を申請する」ボタンを押す。
ストア公開はしたくない場合(Oculusキーのみがほしい場合)は、「Oculusキーのみにしてください」と書いて送信。

以上。

## ストア申請完了後から、リリースまでの流れ

https://www.slideshare.net/YuukiOgino/vr-tech-tokyo-6microsoftvr-oculusstore

審査を申請
　↓
TechnicalReview テクニカルレビュー
　1～2日。技術的ガイドラインを満たしているか。
　機械的に判定されるアプリケーション要件を満たすかの確認。
　機能、FPS確保テスト？
　これを通過すると(次以降のレビューでリジェクトされても)「Oculusキーの配信」が得られる。

　↓

ContentReview コンテンツレビュー
　1～2日。アプリの洗練度、有用性の審査。
　OculusStoreに並べられる品質かの確認

　↓

PublishingReview パブリッシングレビュー
　約2週間。
　価格、スクリーンショット、メタデータ、Sotreガイドライン要件の確認

　↓

リリース
　PublishingReviewを通過すると、Oculus公式ストアにリリースされる


## ストア公開後　更新版のリリースビルド作成方法

unityで以下設定を行ってビルドすると、更新版としてリリースできるapkが作成できる。

Edit > ProjectSetting > Player > Publishing Settings
　Keystore password：控えておいたパスワードを入力
　key > password: 控えておいたパスワードを入力


以下のバージョン情報を更新する必要あり。
　AndroidManifest.xml
　　android:versionCode
　　android:versionName

　Edit→ProjectSetting→Player
　　Version
　　BundleVersionCode

## ストア公開後　デバッグ用のビルド作成方法

上記のストア公開用のビルド設定をしてしまったものをはunityからBuild&Runで実行することができなくなっている。
再びBuild&Runで動かせるようにするには以下を行う。

公式ストアからインストールしたアプリが入っている場合、
adb uninstall 《パッケージ名》
……でいったんアプリをアンインストール。

unityを開く

Assets/Plugins/Android/AndroidManifest.xml
……を削除

Edit > ProjectSetting > Player > Publishing Settings
  Key: Unsigned(debug)
……に設定

File > Build&Run
……でunityからBuild&Runで実行できるようになる。


## 参考にしたURL

公式日本語ガイド
https://developer.oculus.com/blog/oculus-distribution-channel-guide/
https://developer.oculus.com/blog/app-submission-review-process-guide/

【Unity】GearVR アプリを Oculus Store に申請する（要件・仕様の概要）
http://fantom1x.blog130.fc2.com/blog-entry-258.html

OculusGoアプリのリリース用APK作成手順まとめ #OculusGoDev
https://qiita.com/m0a/items/126dd0186a3192ffd70c