- Xamarin.iOS を VSTS でビルドする
- VSTS とは
- やっていく
- 参考情報
- 24 時間自宅で動かせる Mac 開発機がほしい!!!!!!!!!!!!!
Xamarin.iOS を VSTS でビルドする
VSTS とは
VSTS とは、 Microsoft の提供している開発者が開発を効率的に行えるようにするサービスです。
VSTS に含まれている機能
アジャイル開発とかをしやすくするための機能がたくさん含まれてます。 今回は、VSTS 自体についての記事ではないので詳しくは、ぐぐってください。
- 継続的インテグレーション
- バックログ、タスク管理
やっていく
VSTS で Xamarin.iOS のプロジェクトをビルドするための ビルド構成を作る
VSTS で Xamarin.iOS をビルドするときに、 Xamarin.Android のプロジェクトが混じっているとビルドに失敗します。 ということで、新しく、 Xamarin.iOSをビルド専用のビルド構成 を作ります。
Visual Studio で Xamarin,iOS の含まれているソリューションを開き、構成マネージャーを開いて新規構成を選ぶ
この時に、設定のコピー元は、 Release を選んだ方がいいと思います。
Xamarin.iOS のビルドに必要なプロジェクト以外のチェックを外して、 iOS Release という名前で保存する
自分の場合、こんな感じになりました。
これを、アクティブソリューションプラットフォームを iPhone, iPhone Simulator と2つ切り替えて設定します。
Github との連携設定
今回は、 Github においてある Visual Studio の Xamarin Template で作ったまんまの コードをビルドしていきたいと思います。
Github との連携するために Github による VSTS に対する認証が必要です。
ここで、 上部にあるツールバーの一番右に配置してある歯車のアイコンにマウスをホバーさせると出てくるメニュー の中から Services を選択します。
Services の画面
New Service Endpoint の部分をクリックし、 出てくるドロップダウンボックスから Github を選択します。
すると、Github との連携の設定画面が出てきます。 Authorize をクリックしてください。
出てきた、 Github との連携の設定画面
ID/Pass を入力して、認証してください。 Github との認証が完了した画面
iOS アプリをビルドするために手持ちの Mac マシンに Build Agent をインストールしてく
現在、 VSTS で提供されている ビルドマシンは、以下の3種類あります。
ビルドマシンは、 VSTS でアプリ等をビルドするタスクが発行されたときにビルドをするためのマシンです。
- Hosted (メイン, Windows機)
- Hosted Linux Preview (プレビュー, Linux)
- Hosted VS 2017 (プレビュー, Windows)
名前を見ればどのようなマシンかはわかるかと思います。
まぁ、プレビューなので選択しは実質1つだけですが。
iOS アプリのビルドをするためには、 Mac マシンが必要
iOS アプリをビルドするためには、 Apple の利用規約の関係で Mac マシン上でビルドしなければいけません。
ところが、VSTS でビルドのために使えるマシンは、上で書いてあるように、 Windows (一応、Linux)しかありません。 Mac は使えない感じです。
どうすれば、 iOS アプリをビルドできるでしょうか?
ちゃんと、やり方は用意されています。
手元にある Mac マシンをビルドするために使います。具体的には、 VSTS で iOS アプリのビルドするタスクが呼び出されたら、 VSTS の Build Agent がインストールされたマシンが代わりにビルドを行います。
Build Agent ... 知らない子ですね。
Build Agent とは、
Build Agent とは、 Hosted ビルドマシンでは無理な場合(今回のように Mac が必要なときや、Hosted マシンの1か月の利用時間制限を使い切ってるとき)に設定して使うときに使うソフトウェア?です。
VSTS のサイトから無料で入手することができます。
今回は、このソフトウェアを Mac マシンにインストールしていきます。
(Mac Book Air をビルドマシンにしてるから、Mac mini ほしい...)
Build Agent を入手する
Build Agent は上でも書いた通り VSTS のサイトから入手することができます。 具体的には、 設定画面 の Agent Queue の Download Agent のボタンからダウンロードで入手できます。
Build Agent を Mac へ設定している様子を動画で撮影してみました。
Build Agent にした Mac マシンでビルドするための証明書を作る
iOS アプリをビルドするためには、 アプリパッケージを作るための、証明書が必要です。
しかし、証明書を作るためには、 XCode を利用して作られます。つまり、Xamarin Studio や Visual Studio では作成できない。
また、証明書の判別は、 Bundle identifier を利用して行われています。
ということで、
Xcode でダミーのプロジェクトを作成し、 Xamarin.iOS のプロジェクトの Bundle identifier と同じにして証明書を作ってあげる必要があります。 証明書の作成は、 XCode で、 Bundle identifier を同じにした 適当な iOS アプリをシミュレーターで動かすだけでおkです。
今回の場合は、 Build Agent に設定してあるマシンでも証明書を作らなければいけないので、下準備として、
Build Agent に設定してある Mac マシンの Xcode 上で Xamarin.iOS の Bundle identifier な証明書を作成する必要があります
新しいビルド定義を作成する
VSTS では、ビルド定義に従って、ビルドを行っていきます。まず、ビルド定義を作成していきます。
ダッシュボードにアクセス
ダッシュボードにアクセスするところから始めていきます。
Build && Release タブへ移動
継続的インテグレーションやリリースの管理はこのタブで行います。
すでに、 Android のビルド定義が1つされている感じです。
新しいビルド定義の作成
+New の部分をクリックして、新しいビルド定義を作成します。
新しいビルド定義ができた!
Github にある ビルドしたリポジトリを指定する
VSTS 自体にもコードを管理する機能がついています。しかし、ほかの ツール等への移行をしようとしたときに辛みが出てくるので、今回は、 Github でホスティングしているリポジトリをビルドしていきます。
Github にある リポジトリやブランチの選択
Xamarin Component Restore のタスクを削除
今回ビルドするプロジェクトでは、 Xamarin Component は使ってないため、タスクを削除します。
Xamarin.iOS のビルド設定
たぶん、一番メインのタスクです。
ビルドするソリューションの選択
ビルドするを選択するためにファイルピッカーを開いて設定していきます。
Xamarin Test Cloud のタスクを削除
Xamarin Test Cloud は様々なデバイスでのUIテストを行ってくれるものですが、今回は使用しないので削除します。
設定が完了
これで、ほとんどの設定が完了しました。
それでは、、、
設定を保存してから
ビルドするマシンを先ほど設定した Mac に変更して、
ビルド設定を iOS Release に変更、、、
緊張の...
ビルド...
成功!!
ビルドに成功したよ!ビルドナンバーは、20170405.3だお!
— kuu | Android app Dev (@Fumiya_Kume) 2017年4月5日
ビルド結果は、succeededだよ!
Xamarin.Android を VSTS でビルドしたい場合は、こちらを見てね!
参考情報
https://blogs.msdn.microsoft.com/chomado/xamarin/vsts-xamarin-hockeyapp-bookmarks/
Build Xamarin apps - Azure Pipelines | Microsoft Docs