スマホアプリのハッカソンで使える、App Centerが熱い！

スマホアプリのハッカソンでおすすめな、App Centerをご紹介します！

# 背景
ハッカソンで与えられる時間は限られており、可能な限り、自分のアイデアやサービスを磨く時間に使いたいものです。
多くの場合チーム開発をするため、開発環境やCI＆CDパイプラインを整えることも非常に重要な要素となります。
App Centerはパイプラインの定義ファイルを書くこと無く、Webの管理コンソールを操作するだけで、すぐにCI&CDパイプラインを整えることができます！

# App Centerとは
「Visual Studio App Center」が正式名称で、Microsoft社が提供するAzureのサービスの一つです。
[公式サイト](https://azure.microsoft.com/ja-jp/services/app-center/)では、`モバイルやデスクトップ アプリを作成、テスト、リリース、監視するための開発者向け統合サービス`と紹介されています。

様々なリポジトリ（GitHub、Bitbucket、GitLab、Azure DevOps）と接続して、ビルド、テスト、リリースを自動化することができます。
また、そのためにパイプラインの定義ファイル（YAMLファイルなど）を書く必要がなく、Webの管理コンソールから簡単に設定できます。

iOS開発を例にすると、GitHubのリポジトリと接続して簡単な設定を追加するだけで、ビルド、起動テスト、リリース（Adhoc/TestFlight/AppStore）までを自動化することができます🎉

ハッカソンでは、フロントエンド（アプリなど）とサーバサイド（APIなど）を分業して開発することが多いと思います。
App Centerを利用して、最新のアプリケーションをサーバサイドの開発者が常にダウンロードできる状態にしましょう👍

似たサービスとして、[Firebase App Distribution](https://firebase.google.com/docs/app-distribution)があります。
こちらも非常に簡単にアプリケーションを配布できますが、自動ビルドを行うことができません。ここが大きな違いです。

# やってみよう

iOS開発を例にApp Centerの使い方をご紹介します。
今回はApp Centerの紹介が本題のため、以下については割愛します🙇‍♂️

- XcodeでiOSアプリの開発
- GitHubリポジトリの作成、開発した資材のPushなど

### App Centerに登録
[App Center](https://appcenter.ms/)から利用を開始しましょう！
GitHubアカウントやMicrosoft アカウントを利用して始められます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/a7d553d4-cbc1-5ae7-3766-3492cee9d7e6.png)

### App Centerにアプリケーションの追加
#### 「Add new」→「Add new app」を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/56d00662-776a-f159-81ab-b1c9d66e7658.png)
#### アプリケーションの情報を入力する
iOSだけでなく、Androidやデスクトップアプリケーションも追加することが出来ます！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/07b6468d-a4e6-6d19-325a-d5ec29034cb3.png)
#### Overviewが表示されたら、アプリケーションの追加は完了です
iOS SDKを追加しましょうという案内がありますが、必須ではありません。
SDKを追加すると、クラッシュや分析を行うことができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/8b0cb576-1086-6191-8bd8-3176460bc9ce.png)

### リポジトリに接続
#### 接続するリポジトリタイプを選択する
ここでは、GitHubを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/2f051ff2-fdf6-4a7d-f15a-295cfdb11954.png)
#### 接続するリポジトリを選択する
Privateリポジトリも指定できるのは嬉しいですね👏
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/0e64123e-402d-5ed8-d0cc-c0f9d424a5be.png)
#### ブランチ一覧が表示されたら、リポジトリの接続は完了です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/e02d1bd9-4c9a-a709-732d-dbc0aa585a77.png)

### ビルドを設定する
#### ビルドするProjectやSchemeの設定、ビルドに必要なプロビジョニングプロファイルや証明書を設定します
個人的にはビルド番号を自動で設定してくれるのが嬉しいポイントです👏
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/f4b41a79-2e6e-a6ed-6d49-49b4bd147b67.png)
#### 実機で起動テストを行うか、配布先、ステータスバッジの設定も行えます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/a396df9f-735b-fe3f-49d1-5d20e796a96b.png)
#### 「Save&Build」を押すと、ビルドが開始されます！
配布設定を行っていれば、以下のようなメールが届き、デバイスにインストールすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/2dac22db-869e-b844-688b-d35dcb3d3d5a.png)

# さいごに
ハッカソンだけでなく、ビジネスを発展させるためには、開発の高速化が必要になってきます。
ビルドやテスト、配布の自動化がWeb上の管理画面で簡単に設定できるApp Centerを利用して、限られた時間を有効に使いましょう！！

# 補足
## You must add a shared scheme. と言われたら
ご参考： [iOS Build Troubleshooting](https://docs.microsoft.com/en-us/appcenter/build/troubleshooting/ios#no-xcode-scheme-is-found)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/3b8e53a0-d010-2f13-a553-b44f8f8167d9.png)
### Xcodeでビルド対象にしたいスキーマがSharedになっていることを確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/eb67e1c9-d426-f74c-b8c3-52ce49992f86.png)
### ビルド対象にしたいスキーマがGit管理されていることを確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/95556/27359fda-592b-28bc-ff30-bf9b5b36162d.png)