[Unity] Android アプリを公開する為の設定

Unityで作ったアプリをAndroidとしてビルドしてテストしましたが、次はGoogle Playで公開できるSigned Buildを作成する手順について見ていきましょう。
 
android-release_15

Unity 2018.1




Signed Buildの作成

 
公開するための手順としては以下のようになります。

  1. アプリをビルドしてandroid実機上でテストする
  2. アプリを公開する為の設定 
  3. Developer Consoleに登録してGoogle Playで公開

ここではアプリが完成してAndroid の実機でのテストが終わった段階から始めます
 
Androidアプリをリリースする上で重要なことがあります。
 
今後の Google Play でのアプリのセキュリティおよびパフォーマンスの改善について

  • 2018 年 8 月: 新しいアプリで、ターゲット API レベル 26(Android 8.0)以降が必須になります。
  • 2018 年 11 月: 既存のアプリのアップデートで、ターゲット API レベル 26 以降が必須になります。
  • 2019 年以降: 毎年、targetSdkVersion の要件が上がります。

つまりUnityの場合それほどAndroidの込み入った機能を使っていないのでAPIレベルもゆるく考えていたかもしれませんが、API 26以上に対応しておかないといけなくなります。例えばAdaptive iconsとか…
 

 

Build 設定

 
「File」「Build Settings…」設定ダイアログを開きます。
「Add Open Scenes」でリリースしたいSceneをリストに載せチェックされている事を確認します。
 
PlatformがAndroidに設定されていなければAndroidに設定後「Switch Platform」ボタンをクリック
 
 
android-release_02
 
「Player Settings…」を選択
「Inspector」が現れるので各種設定をします。
 
android-release_03
 
以降の設定は最低限ですので、細かな設定についてはUnityのマニュアルをみてください。
Android Player Settings

 

icon

 
API 26ではAdaptive Iconsを設定します。
前景と背景の画像を使って丸型から四角型までのアイコンに対応できるようにし、アニメーションも色々とできるようになります。

https://akira-watson.com/android/adaptive-icons.html

上の参考記事によればAndroid StudioのImage Assetを使うとpaddingを見ながらいい感じに作れそうなのでアイコンを作って見ます。
 

foreground: cube_icon2
background:background_icon2

 
ということで、必要なアイコンは3タイプです。一番大きな xxxhdpiを設定すると他が自動的に作成されます。

  • Adaptive Icons (API 26)
    • 432×432
  • Round Icons (API 25)
    • 192×192
  • Legacy Icons (legacy…)
    • 192×192

この画像をImage Assetに設定して、TrimやResizeでいい感じに納めます。
 
android-release_04
 
これで「Finish」してアイコンファイルを生成
プロジェクトの中を見に行くと「xxxhdpi」に4つファイルができています。
 
android-release_05
 
この4つをUnityのAssetにImportして
Texture Typeを Sprite にします。
 
それぞれを画像サイズなどを見て、xxxhdpiにドラッグ&ドロップすると小さいアイコンが自動で作成されます。
 
Adaptive icons:
 
android-release_06
 
Round icons:
 
android-release_07
 
Legacy icons:
 
android-release_08

 

Resolution and Presentation

 
画面ローテーションの初期設定と
Status Bar の表示・非表示を設定をします
 
android-release_09
 
ゲームではあまりローテーションしないほうが扱いやすいかもしれません。またdpiの調整もできます。Resolution Scaling

 

Splash Image

 
Splash Image は有料版での機能です。無料ライセンスではUnityのロゴがでます。

 

Other Settings

 
Identificationの設定は必須です

  • Bundel Identifier:
    「Company Name」と「Product Name」の設定は既に終わっていると思いますが
    com.hoge.TestApp のようにInspectorのCompany NameとProduct Nameから作ります。
  • Version:
    ドットで区切られた(例えば4.3.2)数字を含む文字列の一般的なフォーマットで指定
  • Bundle Version Code:
    ユーザーには表示されないバージョン番号、バージョンアップでカウントアップ
  • Minimum API Level:
    AndroidのAPIレベルでこれ以上をサポートする。
  • Target API Level:
    Automatic (highest installed) にデフォルトでなっています。

android-release_10

 

Publishing Settings

 
「Publishing Settings」はアプリの署名について設定します。 
Keystore
まだ作成してなければ新しく作ります
「Create New Keystore」にチェック
「Browse Keustore」で保存場所を決めます
あとは、
「Keystore password」と「Confirm password」に
パスワードを入力します。
パスワードを忘れると公開したアプリのバージョンアップができなくなりますので、必ずどこかに保存しておきましょう。
 
Key の Alias では
「Create a new key」を選択
すでに作成済みならば「Use Existing Keystore」でBrowseしてファイルを選択します。
 
android-release_12

 
Key Creation には年数、国コードなどを入れます
 
android-release_11
 
元の画面に戻って、Alias は今作ったものを選択してパスワードを入れます
また、AliasはUnsigned(debug)のままにするとGoogle Play のアップロードではじかれます。
 
android-release_13
 
これで、「Build」を実行
apk の保存場所を決めます
ビルド後 apk ファイルができていればそれがSigned Buildになります。
 
この後は、実機でテストです、Terminalなどでインストールしてみましょう。
 

 
参考: 公開・未公開アプリの実行ファイルapk をインストールするには

 

Install Test

 
実機にインストールしました、アイコンができています。
 
android-release_15
 
起動させました。
 
android-release_14
 
さて、前出のAndroid 8.0 以上の対応について、Automatic(Highest Installed)の設定だったのですが大丈夫なのか調べてみましょう。
ということで、apkを出力させるのではなくAndroidプロジェクトを「Export」してみます。
 
「Export Project」にチェックして「Export」をクリック
 
android-release_17
 
出力先にプロジェクトが展開されます。
 
android-release_16
 
build.gradleをのぞいてみると
targetSdkVersion 27 となっているので大丈夫ですね
 
これは私のAndroid SDKが27まで設定してあるからでSDKが25だとまずいわけです。
 
問題なければ、Developer Consoleに登録してGoogle Playで公開ですが
署名についてはGoogle Play App Signingをした方がいいでしょう。

  1. アプリをビルドしてandroid実機上でテストする
  2. アプリを公開する為の設定 
  3. Developer Consoleに登録してGoogle Playで公開

最近このようなエラーでビルドが失敗することがあります
Error building Player: IOException: Sharing violation on path C:_unityTestAppTempStagingArearesvaluesstrings.xml
 
特に2回目以降のビルド、Windows7 などの特徴がありますが
対応策としては
プロジェクトフォルダーをエクスプローラーで選択して、
「プロパティ」「詳細設定」の中の
「・・・インデックスを付ける」のチェックを外す
apk, keystore を削除
Unity を管理者権限で起動してやり直す
これらの事で解消しました
 
 


References:
Android Player Settings
Image Asset Studio を使用したアプリアイコン作成 | Android Developers