「Visual Studio App Center」とは?
Microsoftが提供しているクラウドのCI/CDサービスです。
基本的な機能は無料で使用できます。
(以下「App Center」と呼ぶ)
環境
- Xcode:10.1 (10B61)
- Swift:4.2.1
- Carthage:0.31.2
- CocoaPods:1.6.0.beta.2
準備
スキーマのコンテナをワークスペースに変更(ワークスペース使用時のみ)
CocoaPodsなどで *.xcworkspace を使っている場合のみ必要な設定です。
Xcodeを起動 > Product > Scheme > Manage Schemes…
対象SchemeのContainerをWorkspaceに変更

CocoaPodsのインストールスクリプトの実装(β版のCocoaPods使用時のみ)
App Centerの環境は基本的に最新のCocoaPodsがインストールされています。
β版のCocoaPodsを使用したい場合はスクリプトを手動で実装する必要があります。
appcenter-post-clone.sh という名前でプロジェクトのルートフォルダに配置することで、ソースのクローン直後に自動で実行されます。
# !/usr/bin/env bash
# β版のCocoaPodsを使う
# ∵Xcode 10×CocoaPods 1.5.3の組み合わせだとコード署名でビルドエラーが発生するため
sudo gem install cocoapods --pre
App Centerでビルドの設定
App Centerにログインしてプロジェクトを作成します。
https://appcenter.ms/
プロジェクトの作成やGitリポジトリの連携については割愛します。
私はAzure DevOpsのReposにあるGitリポジトリと連携させています。
私は以下のように設定し、ビルドと単体テストを実行させています。
デプロイまで行う場合は署名などの設定をONにしてください。
| 項目 | 値 | 備考 |
|---|---|---|
| Project/Workspace | {プロジェクト名}.xcworkspace | 対象プロジェクト or ワークスペース |
| Shared Scheme | {対象スキーマ} | 選択できるスキーマがないと「No Scheme」エラーとなる |
| Xcode version | 10.1 | 対象Xcodeのバージョン。Swiftのバージョンと紐付いている |
| Build scripts | Post-clone | 対象スクリプト。所定の位置に配置するだけでこちらに表示される |
| Build frequency | Build this branch on every push | プッシュ時に自動でビルドする場合は上、手動は下を選択する |
| Automatically increment build number | OFF | ビルド番号を自動でインクリメントするか |
| Run XCTest tests | ON | XCTestを実行するか |
| Environment variables | OFF | 環境変数を使用するか |
| Sign builds | OFF | 署名してビルドするか。UIテストを実行する場合は必須 |
| Test on a real device | OFF | 実機でテストを実施するか。 有料 |
| Distribute builds | OFF | アプリを配布するか |
| Build status badge | ON | ビルドステータスバッジを使用するか |
おわりに
これで「ソースをプッシュ→ビルド→単体テスト」を自動化できました!
あとはこれに続けて「→デプロイ」まで自動化できるようにしたいです。
App Centerによるビルドでは、CocoaPodsやCarthageで管理しているライブラリを自動でインストールしてくれるため、簡単な設定のみでビルドできて非常に便利です。


