プロジェクトの作成
まず、Xamarin.FormsのプロジェクトをVisual Studioで作成します。
作成したらWindows
, WinPhone
, UWP
のプロジェクトを削除します。UWPあるとビルド通らなかったので…。
プロジェクト名は、ここではxfvsts
にしました。
VSTS上のプロジェクトの作成
ソースをVSTS上にプッシュしておきます。ソリューションをソースコントロールに追加してチームエクスプローラーからさくっとできます。
ビルドの定義の作成
VSTSのポータルにアクセスしてBuild & Release
からBuild
にいって+ New definition
を選択しましょう。
Visual Studio
を選択してNext >
を選択します。気になるのはXamarin.Android/Xamarin.iOS
ですが今回は無視しました。
次の画面は、そのままCreate
します。
これで基本的なビルドが通るようになります。Save
を押してandroid build
という名前で保存しておきましょう。
ビルドの確認
保存したらBuilds
のAll Definitions
に行って...
を選んでQueue new build...
を選択します。
出てきた画面でOK
を押すとビルドが走ります。
ビルドが終わったら、そのビルドのArtifacts
を見ると、dllとかが生成されてることがわかります。
apkの生成
APKを生成しましょう。Visual Studioでリリースビルドをして、xsvsts.Droidプロジェクトをスタートアッププロジェクトにします。その状態でメニューのツール -> Android -> Publish Android App...
を選びます。
選べない人は、何回かビルドや、スタートアッププロジェクトの切り替え(いったんiosにするとか)してみてください。
とりあえず初回なのでCreate New KeyStore
を選んでDroidプロジェクト直下にsample.keystoreファイルを作るようにします。パスワードは適当に。
次のページも適当に埋めます。
次のページでCreate
を押せば出来上がりです。
リポジトリにPushしておきましょう。
自動化したい
ビルドの定義を編集します。先ほど作成したビルドの定義を開いてEdit
します。
Add build step...
があるので、押してVisual Studio Build
を追加して、既存のBuild Solution **\*.sln
の下に移動させます。
そしたら、Solution
を...
を押してxsvsts.Droid.csproj
を選びます。MSBuild Arguments
に以下の値を設定します。
/t:SignAndroidPackage /p:OutputPath=bin/Release;AndroidKeyStore=True;AndroidSigningKeyStore=キーストアファイル名.keystore;AndroidSigningStorePass=パスワード;AndroidSigningKeyAlias=指定したエイリアス;AndroidSigningKeyPass=パスワード
保存して、ビルドを実行してみます。apkが作られてることが確認できます。
あとは、これをmasterブランチにプッシュのたびにやるようにしたりすれば、毎回apkが作られますね。