Visual Studio Mobile CenterでiOSアプリをビルドしてみた
Visual Studio Mobile Centerとは
Microsoftの開発者向けイベント「Connect(); 2016」で発表されたサービスで、一言で言えば、「モバイルアプリ開発に必要なサービスを統合したもの」になります。
モバイルプラットフォームは、Objective-C、Swift、Java、Xamarin、React Nativeに対応しています。
※以降、VSMCと略させていただきます。
VSMCは記事執筆時点でPreview版です。そのため、正式版リリース時には機能が異なる可能性がありますのでご注意ください。なお、Preview版の間は無料で利用できます。
提供サービス
具体的には以下のサービスが提供されています。
Lifecycle services
Build
- Gitリポジトリで管理しているソースコードに対し、コミットまたはプッシュするたびに自動でアプリケーションパッケージを作成するビルドサービス。
- 現状はGitHubリポジトリのみをサポートしている。(BitbucketとVSTSの統合はロードマップ上にある)
Test
- 実機によるテストサービス。
- C#(UITest)、Ruby(Calabash)、またはJava(Appium)で書かれたiOSおよびAndroidアプリ用のテストを実行することができる。
- Xamarin Test Cloudによって実現されている。
Distribute
- メールアドレスのセット(Distribution Groups)を設定してアプリケーションを配布することで、テスターが直接スマートフォンにアプリをインストールできるサービス。
- HockeyAppの配布機能によって実現されている。
Monitoring services
Crashes
- クラッシュレポート機能。
- Mobile Center SDKのCrashesモジュールをアプリに組み込む必要がある。
- HockeyAppのクラッシュレポート機能によって実現されている。
Analytics
- アプリの利用ユーザー数やユーザーのアプリの使い方などを収集するアナリティクスサービス。
- Mobile Center SDKのAnalyticsモジュールをアプリに組み込む必要がある。
Mobile backend services
認証やデータ同期、プッシュ通知を提供するサービス。Azureを使用しているため、アプリにMobile Services SDKを組み込む必要がある。
Identity
- Google、Facebook、Twitter、Microsoftアカウントによる認証サービス。
Tables
- モバイルアプリとバックエンド間でのオフラインデータ同期を提供するサービス。
Push notifications (Coming Soon)
- プッシュ通知は将来提供されるようです。
VSMC上にアプリを作成する
サービスを試すにあたって、まずはVSMC上にアプリを作成する必要があります。
サインインページにアクセスして、 「Connect with Github」をクリックします。
Githubにサインインします。
OAuthの認可画面が表示されるので「Authorize application」をクリックします。
usernameを聞かれるので入力して「Choose username」をクリックします。
管理画面が表示されました。
「Add new app」をクリックするとアプリ名、アプリの説明(任意)、OS、プラットフォームを聞かれます。
今回はiOS、Objective-C / Swiftを選択しました。
アプリを作成すると、Mobile Center SDKをアプリに組み込む方法が表示されます。
また、画面左側にBuildやTestなどのメニューが表示されています。
iOSアプリをビルドしてみる
Xcodeのプロジェクトを作成し、iOSアプリをビルドしてみます。
言語はObjective-C / Swiftどちらでも対応していますが、今回はSwiftにしました。
作成したサンプルプロジェクトはこちらです。
画面左側のメニューの「Build」をクリックすると、接続しているGithubアカウント管理下のリポジトリが表示されるので対象のリポジトリを選択します。
ブランチの一覧が表示されるので対象のブランチを選択します。今回はmasterブランチを選択しました。
「Set up branch」をクリックします。
プロジェクトやスキーム、Xcodeのバージョン等を設定します。
今回は「Build on push」と「Run XCTest tests」を有効にしました。
これによりブランチにプッシュされるたびにビルドが行われます。手動ビルドにしたい場合は無効にしてください。
テストもXCTestで書けば実行されます。ここも必要に応じて設定してください。
「Sign builds」は実機でビルドする場合の設定、「Distribute builds」はアプリを配布するための設定ですが、今回は無効のままとしました。
Sharedスキームが1つ以上必要
注意事項として、Sharedなスキームが1つ以上無いとブランチのセットアップ時に「Shared Scheme」が選べません。
Xcodeのプロジェクト作成時はSharedスキームが1つも無い状態なので、Manage Schemes...からSharedスキームを設定してください。
ビルドが行われるタイミング
ビルドは以下をトリガーに行われます。
- Set up branchのFinish setupをクリック時
- ブランチへのプッシュ時(「Build on push」を有効にしている場合)
- 「Build now」クリック時(手動ビルド)
ビルドの進行状況
キューに入った状態
ビルド中
ビルド成功
失敗するテストケースを追加してみた
わざと失敗するテストケースを追加してみました。
XCTAssertEqual(1 + 1, 3)
ビルドした結果、ちゃんとFAILEDになりました。
どこで失敗したかをログで確認することもできます。
おわりに
今回はVSMCの紹介と、iOSアプリのビルドを試してみました。
他の機能も試してみたいです。