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

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

Jul 20, 2015

Download

Engineering

Tetsuya Mori
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Unity に於ける Android ビルド自動化のおはなし - 20141215 第27回 Unity 勉強会

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

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

森 哲哉

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

こんばんは!

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

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

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

今日のテーマ

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

と、いうわけで

ビルド のおはなしです

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

おしながき

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

おしながき

• 自己紹介

• 前置き

• やること

• やりかた

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

自己紹介

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

$ whoami

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

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

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

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

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

$ whoami

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

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

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

• Unity 歴 1 年半くらい。

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

• 絶賛 Shader のお勉強中。

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

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

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

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

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

$ jobs

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

$ jobs

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

$ ls -la apps/

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

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

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

なりきり!! ママごっこ

お弁当をつくろう!

おかしの家を つくろう!

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

飛行機を 組み立てよう!

i18n i18n i18n

i18n

ゆかいな お花屋さん

App Sto

re / Goo

gle Play

カテゴリランキング1位

多数獲得!!!

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

前置き

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

環境• Operation System: OS X Yosemite

• Unity: 4.6.0f3 (Pro Only)

• Platform: Android

• Language: C#

• Other: Android SDK, gradle

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

今日 喋るコト

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

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

• PostProcessBuild な話

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

今日 喋らないこと

• Native Plugin の話

• Google Play Developer Console での公開の話

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

やること

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

Unity ⇒ Android Project

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

Unity ⇒ Android Project

このボタンを押すと…

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

Unity ⇒ Android Project

コレを雛形にして…

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

Unity ⇒ Android Project

こんなのが出力され…

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

Unity ⇒ Android Project

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

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

Archive

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

Pre Archive

• 広告 SDK とかの設定

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

• intent-filter 設定

• KeyStore 設定

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

Packaging

APK を出力する

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

Packaging

普通にやるなら Android Studio から

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

Packaging

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

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

Packaging

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

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

Packaging

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

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

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

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

………。

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

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

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

ダメよ~、ダメダメ!

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

やりかた

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

Export Android Project

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

Export Android Project

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

先ずは基本から

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

Export Android Project

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

Example

これで Android Project が出力される

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

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

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

Archive

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

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 コマンド実行

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

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

Archive

以上っ!

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

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

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

build.gradle

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

build.gradle

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

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

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

おまけ

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

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

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

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

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

まとめ

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

まとめ

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

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

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

Thank you foryour attention !