Visual Studio Mobile CenterでiOSアプリをビルドしてみた

vsmc

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」をクリックします。

vsmc_001

Githubにサインインします。

vsmc_002

OAuthの認可画面が表示されるので「Authorize application」をクリックします。 vsmc_003

usernameを聞かれるので入力して「Choose username」をクリックします。 vsmc_004

管理画面が表示されました。 vsmc_005

「Add new app」をクリックするとアプリ名、アプリの説明(任意)、OS、プラットフォームを聞かれます。
今回はiOS、Objective-C / Swiftを選択しました。 vsmc_006

アプリを作成すると、Mobile Center SDKをアプリに組み込む方法が表示されます。
また、画面左側にBuildやTestなどのメニューが表示されています。
vsmc_007

iOSアプリをビルドしてみる

Xcodeのプロジェクトを作成し、iOSアプリをビルドしてみます。 言語はObjective-C / Swiftどちらでも対応していますが、今回はSwiftにしました。
作成したサンプルプロジェクトはこちらです。

画面左側のメニューの「Build」をクリックすると、接続しているGithubアカウント管理下のリポジトリが表示されるので対象のリポジトリを選択します。 vsmc_build_001

ブランチの一覧が表示されるので対象のブランチを選択します。今回はmasterブランチを選択しました。 vsmc_build_002

「Set up branch」をクリックします。 vsmc_build_003

プロジェクトやスキーム、Xcodeのバージョン等を設定します。 今回は「Build on push」と「Run XCTest tests」を有効にしました。
これによりブランチにプッシュされるたびにビルドが行われます。手動ビルドにしたい場合は無効にしてください。
テストもXCTestで書けば実行されます。ここも必要に応じて設定してください。
「Sign builds」は実機でビルドする場合の設定、「Distribute builds」はアプリを配布するための設定ですが、今回は無効のままとしました。 vsmc_build_004

Sharedスキームが1つ以上必要

注意事項として、Sharedなスキームが1つ以上無いとブランチのセットアップ時に「Shared Scheme」が選べません。
Xcodeのプロジェクト作成時はSharedスキームが1つも無い状態なので、Manage Schemes...からSharedスキームを設定してください。 vsmc_build_005

ビルドが行われるタイミング

ビルドは以下をトリガーに行われます。

  • Set up branchのFinish setupをクリック時
  • ブランチへのプッシュ時(「Build on push」を有効にしている場合)
  • 「Build now」クリック時(手動ビルド)

ビルドの進行状況

キューに入った状態

vsmc_build_006

ビルド中

vsmc_build_007

ビルド成功

vsmc_build_008

失敗するテストケースを追加してみた

わざと失敗するテストケースを追加してみました。

XCTAssertEqual(1 + 1, 3)

ビルドした結果、ちゃんとFAILEDになりました。

vsmc_build_009

どこで失敗したかをログで確認することもできます。 vsmc_build_010

おわりに

今回はVSMCの紹介と、iOSアプリのビルドを試してみました。
他の機能も試してみたいです。

参考