Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会

53
Unity に於ける Android ビルド自動化の おはなし【実践編】 2014.12.15 (Thu) / Unity 勉強会 vol.27 株式会社キッズスター システムデベロプメントチーム リーダー 森 哲哉

Transcript of Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会

Unity に於ける Android ビルド自動化の おはなし【実践編】2014.12.15 (Thu) / Unity 勉強会 vol.27

株式会社キッズスター システムデベロプメントチーム リーダー

森 哲哉

こんばんは!

リア充ばくはt…Merry Christmas!!

今日のテーマ

と、いうわけで

ビルド のおはなしです

おしながき

おしながき

• 自己紹介

• 前置き

• やること

• やりかた

自己紹介

$ whoami

• “森 哲哉” と申します。

• a.k.a: もんりぃ / T: @monry / F: monry84

• 30歳 / ♂ / O型 / 天秤座 / 既婚

• 趣味は「お酒」と「合唱」です。

$ whoami

$ whoami• 大学を (自主的に) 卒業後、ベンチャーを転々。

• Web のフロントエンド、サーバサイドが得意。

• Unity 歴 1 年半くらい。

• AWS とキャッキャウフフするのも好きです。

• 絶賛 Shader のお勉強中。

$ jobs• “株式会社キッズスター” って会社で働いてます。

• 未就学児~小学生のお子さまをお持ちのファミリーをターゲットにした、知育/教育に関わるアプリ・サービスを展開しております。

• お陰様で EdTech な知育分野に於いてNo.1 規模で展開しております!(当社調べw)

$ jobs

$ jobs

$ ls -la apps/

なりきり!! ごっこランド

パズル&テイルズおかしのくにを つくるのじゃ!!

なりきり!! アイスクリーム 屋さんごっこ

なりきり!! ママごっこ

お弁当をつくろう!

おかしの家を つくろう!

ハンバーガー やさんごっこ

飛行機を 組み立てよう!

i18n i18n i18n

i18n

ゆかいな お花屋さん

App Sto

re / Goo

gle Play

カテゴリランキング1位

多数獲得!!!

前置き

環境• Operation System: OS X Yosemite

• Unity: 4.6.0f3 (Pro Only)

• Platform: Android

• Language: C#

• Other: Android SDK, gradle

今日 喋るコト

• “Build” ボタンを押した以降の話

• Android Studio を操作しないって話

• PostProcessBuild な話

今日 喋らないこと

• Native Plugin の話

• Google Play Developer Console での公開の話

やること

Unity ⇒ Android Project

Unity ⇒ Android Project

このボタンを押すと…

Unity ⇒ Android Project

コレを雛形にして…

Unity ⇒ Android Project

こんなのが出力され…

Unity ⇒ Android Project

こいつにプロジェクト情報とかが定義される

Archive

Pre Archive

• 広告 SDK とかの設定

• アプリ名ローカライズ設定

• intent-filter 設定

• KeyStore 設定

Packaging

APK を出力する

Packaging

普通にやるなら Android Studio から

Packaging

"Import Non-Android Studio project" からの…

Packaging

なんか色々とエラーと戦って…

Packaging

頑張れば APK 出力できるんじゃないかな?

こういった作業を 職人が丹精込めて 手作業で。

………。

毎回手作業でやれば 良いんじゃないの?

ダメよ~、ダメダメ!

やりかた

Export Android Project

Export Android Project

UnityEditor.BuildPipeline.BuildPlayer( string[] levels, string locationPathName, UnityEditor.BuildTarget target, UnityEditor.BuildOptions options );

先ずは基本から

Export Android Project

BuildPipeline.BuildPlayer( new string[] { "Main.scene" }, "/Users/monry/SampleProject", BuildTarget.Android, BuildOptions.Development | BuildOptions.AllowDebugging | BuildOptions.AcceptExternalModificationsToPlayer );

Example

これで Android Project が出力される

ココから先は PostProcessBuild で処理する

Archive

Archive

System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.FileName = "/usr/local/bin/gradle"; process.StartInfo.Arguments = string.Format( "-b \"{0}/build.gradle\" assembleProduction", "/path/to/export" ); process.StartInfo.CreateNoWindow = true; process.Start(); process.WaitForExit(); process.Close();

何はなくとも gradle コマンド実行

パスは環境に応じて変える

Archive

以上っ!

と、それだけで終わると あまりにも雑なので…

build.gradle

build.gradle

完成品がこちらにございます。

追加の材料としてコレとかコレも必要ですが。

おまけ

おまけ• ビルドした apk を DeployGate に自動 PUSH すると、オシャレ!

• 更にその結果を ChatWork なり Slack なりに 自動 POST すると、もっとオシャレ!!

• 更に更に、ココまでを Jenkins オジサンとかにお願いすると、最高にオシャレ!!!

まとめ

まとめ

• PostProcessBuild で、基本的な設定を置換

• Build → Archive → Deploy も自動化しよう!

Thank you foryour attention !