Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Unity で Android 自動ビルドしたかった話 / I tried Android build of Unity using Docker, but...

Unity で Android 自動ビルドしたかった話 / I tried Android build of Unity using Docker, but...

Roppongi.unity #3 で発表 ( https://roppongiunity.connpass.com/event/129420/ )

speakerdeck はリンクのクリックができないので、
リンクをクリックしたい方はダウンロード、もしくは下のリンクへ
https://drive.google.com/open?id=1-5dTt6LCF_DbVGi3r8ekz4mEcllPRpCO

959960084f2086d7a875a30d2a428682?s=128

ハトネコエ

June 25, 2019
Tweet

More Decks by ハトネコエ

Other Decks in Technology

Transcript

  1. ϋτωίΤ UnityでAndroid 自動ビルドしたかった話 @nekonenene 2019年6月25日

  2. ࣗݾ঺հ ハトネコエ • Twitter : @nekonenene • Github : nekonenene

    最近よ〜うやく
 インタラクティブミュージックの をやり始めました 気持ちよさが追究されててすごい。
  3. Unityͷ͖͔͚ͬ 5月のコミティアでサークルさんと立ち話 「新作出ないんですか?」
 「プログラマーさんが都合つかなくて」
 「なにかアドバイス程度なら…」
 「もしかしてUnityやってくれますか」
 「と…とりあえず企画書ください!」 からスタート。Unity何もわからない。 テラシュールブログさん助かってます

  4. 話すこと 1. 結論 2. つらい Unity x Docker 3. つらい

    Android ビルド 4. そして私はどうしたか 5. まとめ
  5. ̍ 結論

  6. ݁࿦ • 身も蓋もないですが
 Unity Cloud Build を使いましょう • まだ初心者だし、
 毎月9ドルを払うのはちょっと……


    とあがいた結果が、
 以降のスライドです
  7. ̎ つらい Unity x Docker

  8. DockerΠϝʔδͷ༻ҙ • CircleCI を使うにしても
 wercker を使うにしても、
 Dockerイメージが必要です。 • これを用意するのがとても大変です

  9. Unity x Docker • https://hub.docker.com/r/gableroux/ unity3d がとても優秀 • 自動ビルドによりUnity最新版が
 すぐにDocker

    Hubにプッシュされるよう になっています
  10. ͔͠͠…… • https://gitlab.com/gableroux/ unity3d-gitlab-ci-example に
 使い方が書かれているが大変…… • 実際に手順を見てみましょう
 (上のリンクで書かれているものとやや 異なります)

  11. ͓͓·͔ͳखॱ 1 # UNITY_EMAIL, UNITY_PASS は登壇に合わせて設定済みです docker run -it --rm

    -w /root/project -v $(pwd):/root/project -e EMAIL=$UNITY_EMAIL -e PASS=$UNITY_PASS gableroux/unity3d: 2019.1.7f1 /bin/bash xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' /opt/Unity/Editor/Unity -logFile /dev/stdout - batchmode -quit -username "$EMAIL" -password "$PASS" echo '<?xml version....' > unity3d.alf ͜ΕΛ https://license.unity3d.com/manual ʹΞοϓϩʔυ
  12. ͓͓·͔ͳखॱ 2 cp Unity_v2019.x.ulf /root/.local/share/unity3d/Unity/ Unity_lic.ulf ʢUnityίϚϯυ͸ $HOME/.local/share/unity3d/Unity/Unity_lic.ulf Λ ୳͢ɻMac͸

    /Library/Application\ Support/Unity/Unity_lic.ulfʣ xvfb-run --auto-servernum --server-args='-screen 0 640x480x24' /opt/Unity/Editor/Unity -logFile /dev/stdout - batchmode -quit -buildOSXUniversalPlayer test.app # ライセンス正常(これが出力されるかが超大事!) LICENSE SYSTEM [2019625 0:39:31] Next license update check is after 2019-06-26T04:29:25
  13. खॱ͕໘౗ʂ • Dockerイメージがローカルで6GBもある だけで病みそうなのに、
 準備作業がCLIで完結しない! • しかもライセンスファイルが厄介で
 異なるDockerイメージでは使え
 なかったり色々ライセンスエラーが
 起きやすい!

    これは病む!
  14. ̏ つらい Android ビルド

  15. AndroidϏϧυ͸໘౗ • Androidビルドのためには
 JDKおよびAndroid SDKが必要 • これらをDockerにインストールするのは なかなか難易度が高い • 参考

    : https://hub.docker.com/r/ circleci/android/dockerfile
  16. ਆ߱ྟͱࢥ͍͖΍… • gableroux/unity3d に、Android対応の Merge Request があり、それが
 5月に適応されて「よっしゃ!」と
 思ったけれど、残念ながらあれこれ試す も上手く行かず……

    • 上手くいった方いらっしゃいましたら
 方法教えてください・・・
  17. CIΛ͢ΔͳΒ • Dockerでがんばるのは、Unity, JDK, Android SDK をインストールするあたり で無理がある。ローカルでのサイズも 7GB近くなりDockerらしくない •

    いらないPCで自宅サーバーを建てて、
 Jenkins などのCIツールを入れて
 git hook で動かすのが現実的では
  18. ̐ そして私はどうしたか

  19. CI͸͖͋ΒΊͨ • CI導入をがんばるのを2日ほど続けた • 先ほどのような課題、および個人開発で あることを踏まえると、
 CIで便利になる時間よりもCI導入にかけ る時間の方が大きくなりそうだった

  20. ָ͔͠͠͸͍ͨ͠ • ふだんの「Build Settings」は
 「PC, Mac & Linux Standalone」にし ておいて、キリのいいときだけAndroid

    ビルドをおこないたい • それを手動でやるのは面倒 • Unity CLI は Unity.app 実行中は
 実行できない問題
  21. ͡Ό͋Ͳ͏͔ͨ͠ʁ Build Android ボタン!

  22. Build Android Ϙλϯ • Unity Editorは拡張が可能なので
 1. Platform を Android

    に Switch
 2. ビルド
 3. 元の Platform に Switch
 の一連の流れをおこなってくれる
 メニューアイテムを追加 • お好みでショートカットも振れます
  23. Build Android Ϙλϯ • コードは私のブログを↓
 https://nekonenene.hatenablog.com/ entry/2019/05/20/030642 • より詳しく知りたくなった方は
 『Unity

    エディター拡張入門』を↓
 https://anchan828.github.io/editor- manual/web/index.html
  24. deploygate΁͸CLIͰ .PHONY: deploy deploy: dg deploy ./Build/MyApp.apk --message '$(shell git

    log -1 --pretty=%B)' • 上のように Makefile に書いており、
 「make deploy」でデプロイしている • deploygateへ投げるのもUnity拡張で
 メニューアイテムにあると便利かも?
  25. ̑ まとめ

  26. ·ͱΊ • Unity, JDK, Android SDK、いずれも
 容量が大きくライセンスが絡むもので
 Dockerへのインストールとは相性悪い • CIをおこなうなら、Docker以外の手法も

    検討に入れると良さそう • CIが必要なら Unity Cloud Build に
 お金を払う価値は充分にある
  27. ࣭໰͸࠙਌ձͰ • 「CircleCI? deploygate?」とか
 疑問点が多かった方や、
 Editor拡張についてもっと知りたい方な ど、懇親会のお時間でぜひ。 • 「うちは Unity

    Cloud Build 使わず CI 回せてるよ〜」って方いらっしゃい ましたら詳しく伺いたいです!