Graphで平面を地形に変形させてみた。CIでgitにあるUnityプロジェクトからipa、アーカイブを取得するCIiOSunityはじめに前回のUnity関連の記事から2年以上経過してしまいました。Unityで作ったiOSアプリにObj-CでPush通知を載せてみた2年たっても変わらないのは、ipa生成までの時間です。世間的にもCI周りの知見は充実している中、Unityからipa作成までを一貫した記事がなかったため社内で実施した内容を書いていきます。CIの画面上から必要なメンバーにアップロードが可能な環境を用意することができるようになります。Macの入れ替えなどでXcodeアーカイブファイル(これも結構な容量)を入れ替え前のMacから引き継ぐといったことから卒業できます。前提には、runnerとして動作するMacの開発環境は前回ビルド時と同じ、という条件が必要です。人が使役するお道具にとってかなり重要な役割だと思っています。それでも4分〜10分待たされる自分の作業Macで、合間にやるタスクが限定される、他の作業をすることでビルドの時間も長引くなり滅入るといった気持ち的なところも作業を分離できるのは大きな改善に繋がります。今回の説明で使うのは赤枠で囲っているファイル、フォルダです。Variablesへ追加します。DEVELOPMENT_TEAMはipa出力時に必要。対応する値は次のUnityプロジェクトの中で書いています。Identityに当たる設定値を記載します。Distribution:がPrefixとなる文字列を指定しています。これを設定しない場合、プロビジョニングファイルと紐づいていない証明書が選ばれることがありました。次のようなエラーです。IDが使われているのでそちらを利用することもできます。設定は、このDEVELOPMENT_TEAMの設定を削った状態でもビルドは完了しました。アーカイブ時には先の.gitlab-ci.ymlで記載したコマンドのパラメータから不要なのかもしれません。Xcode8系から登場した設定値です。UUIDを設定するのでなく、プロファイル名を指定するようになりました。Fileの一覧に表示されているNameを使います。これを設定しない場合、プロビジョニングファイルがない、というエラーが表示されました。横に動作を監視してみて、GUIを使った場合のビルドに比べ、batchmodeでの実行なのでとても静かに実行されています。gitにコミットを行なっている作業マシンでの負担も減りました。アップローダツールでなく、Xcode経由でアップロードする場合を想定しています。人の手が必要な部分での知見をためて、自動化可能なところを切り出すという、かなり地道な作業を元に行なっています。いろんな企業のCI構成を取り入れられるように、様々な会社のCI活動をもっと見ていきたいなと。次はPG作業以外のCI化を書く予定です。