署名なしでiOSアプリのビルド&単体テスト〜AppCenter編〜
「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で管理しているライブラリを自動でインストールしてくれるため、簡単な設定のみでビルドできて非常に便利です。
参考リンク
Author And Source
この問題について(署名なしでiOSアプリのビルド&単体テスト〜AppCenter編〜), 我々は、より多くの情報をここで見つけました https://qiita.com/uhooi/items/3f5e2d9b774b86a23d3d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .