読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Visual Studio Team ServicesでXamarin.FormsのDroidプロジェクトのビルドとapkの作成をしてみよう

Xamarin VSTS

プロジェクトの作成

まず、Xamarin.FormsのプロジェクトをVisual Studioで作成します。 作成したらWindows, WinPhone, UWPのプロジェクトを削除します。UWPあるとビルド通らなかったので…。

プロジェクト名は、ここではxfvstsにしました。

VSTS上のプロジェクトの作成

ソースをVSTS上にプッシュしておきます。ソリューションをソースコントロールに追加してチームエクスプローラーからさくっとできます。

f:id:okazuki:20160904205957p:plain

ビルドの定義の作成

VSTSのポータルにアクセスしてBuild & ReleaseからBuildにいって+ New definitionを選択しましょう。

f:id:okazuki:20160904210313p:plain

Visual Studioを選択してNext >を選択します。気になるのはXamarin.Android/Xamarin.iOSですが今回は無視しました。

f:id:okazuki:20160904210516p:plain

次の画面は、そのままCreateします。

f:id:okazuki:20160904210711p:plain

これで基本的なビルドが通るようになります。Saveを押してandroid buildという名前で保存しておきましょう。

ビルドの確認

保存したらBuildsAll Definitionsに行って...を選んでQueue new build...を選択します。

f:id:okazuki:20160904211130p:plain

出てきた画面でOKを押すとビルドが走ります。

ビルドが終わったら、そのビルドのArtifactsを見ると、dllとかが生成されてることがわかります。

apkの生成

APKを生成しましょう。Visual Studioでリリースビルドをして、xsvsts.Droidプロジェクトをスタートアッププロジェクトにします。その状態でメニューのツール -> Android -> Publish Android App...を選びます。 選べない人は、何回かビルドや、スタートアッププロジェクトの切り替え(いったんiosにするとか)してみてください。

f:id:okazuki:20160904211934p:plain

とりあえず初回なのでCreate New KeyStoreを選んでDroidプロジェクト直下にsample.keystoreファイルを作るようにします。パスワードは適当に。

次のページも適当に埋めます。

f:id:okazuki:20160904212323p:plain

次のページでCreateを押せば出来上がりです。

リポジトリにPushしておきましょう。

自動化したい

ビルドの定義を編集します。先ほど作成したビルドの定義を開いてEditします。 Add build step...があるので、押してVisual Studio Buildを追加して、既存のBuild Solution **\*.slnの下に移動させます。

f:id:okazuki:20160904212759p:plain

そしたら、Solution...を押してxsvsts.Droid.csprojを選びます。MSBuild Argumentsに以下の値を設定します。

/t:SignAndroidPackage /p:OutputPath=bin/Release;AndroidKeyStore=True;AndroidSigningKeyStore=キーストアファイル名.keystore;AndroidSigningStorePass=パスワード;AndroidSigningKeyAlias=指定したエイリアス;AndroidSigningKeyPass=パスワード

保存して、ビルドを実行してみます。apkが作られてることが確認できます。

f:id:okazuki:20160904220600p:plain

あとは、これをmasterブランチにプッシュのたびにやるようにしたりすれば、毎回apkが作られますね。