

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS CodeCommit、AWS CodePipeline、AWS Device Farm を使用して iOS アプリを構築してテストする
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm"></a>

*Abdullahi Olaoye、Amazon Web Services*

## 概要
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-summary"></a>

このパターンでは、AWS CodePipeline を使用して AWS 上の実際のデバイスで iOS アプリケーションを構築してテストする、継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを作成する手順の概要を示しています。このパターンでは、AWS CodeCommit を使用してアプリケーションコードを保存し、Jenkins のオープンソースツールを使用して iOS アプリケーションを構築し、AWS Device Farm を使用して構築したアプリケーションを実際のデバイス上でテストします。これらの 3 つのフェーズは、AWS CodePipeline を使用してパイプラインにまとめてオーケストレーションされます。

このパターンは、AWS DevOps ブログの「[AWS DevOps とモバイルサービスを使用した iOS および iPadOS アプリの構築とテスト](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/)」の投稿に基づいています。詳細な手順については、このブログ記事を参照してください。

## 前提条件と制限事項
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント
+ Apple 開発者アカウント
+ ビルドサーバー (macOS)
+ [Xcode](https://developer.apple.com/xcode/) バージョン 11.3 (ビルドサーバーにインストールしてセットアップ済み)
+ AWS コマンドラインインターフェイス (AWS CLI) を[インストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html)して[設定済み](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ [Git](https://git-scm.com/docs) の基本的な知識

**制限事項**
+ アプリケーションビルドサーバーは macOS を実行していることが必要です。
+ CodePipeline が構築を開始するためにリモートで接続できるように、ビルドサーバーにはパブリック IP アドレスが必要です。

## アーキテクチャ
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-architecture"></a>

**ソーステクノロジースタック**
+ シミュレータを使用するか、物理デバイス上で手動テストを行うオンプレミスの iOS アプリケーション構築プロセス

**ターゲットテクノロジースタック**
+ アプリケーションのソースコードを保存するための AWS CodeCommit リポジトリ　
+ Xcode を使用してアプリケーションを構築するための Jenkins サーバー
+ 実際のデバイスでアプリケーションをテストするための AWS Device Farm デバイスプール

**ターゲットアーキテクチャ**

ユーザーがソースリポジトリに変更をコミットすると、パイプライン (AWS CodePipeline) はソースリポジトリからコードを取得し、Jenkins ビルドを開始して、アプリケーションコードを Jenkins に渡します。ビルドの完了後、パイプラインはビルドアーティファクトを取得し、AWS Device Farm ジョブを開始してデバイスプールに対してアプリケーションをテストします。

 

![\[CI/CD パイプラインは AWS CodePipeline を使用して、実際のデバイスで iOS アプリケーションを構築してテストします。\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/06fbd82f-4aed-441c-818c-5f89f56af78e/images/0ae3d7b6-b40c-44ef-9580-8c8266c3d841.png)


## ツール
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-tools"></a>
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) はフルマネージド型の継続的デリバリーサービスで、アプリケーションとインフラストラクチャの更新を迅速に、かつ高い信頼性で行うために、パイプラインのリリースを自動化します。CodePipeline はお客様が定義したリリースモデルに基づき、コードチェンジがあった場合のフェーズの構築、テスト、およびデプロイを自動化します。
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) は、安全な Git ベースのリポジトリをホストする完全マネージド型のソース管理サービスです。これにより、セキュアで拡張性の高いエコシステムで、チームによるコードの共同作業が簡単になります。CodeCommit を使用することにより、独自のソース管理システムを運用したり、そのインフラストラクチャをスケールしたりする必要がなくなります。
+ [AWS Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) は、テストインフラストラクチャをプロビジョニングして管理しなくても、さまざまなデスクトップブラウザと実際のモバイルデバイスでテストすることで、ウェブアプリやモバイルアプリの品質を向上させることができるアプリケーションテストサービスです。
+ [Jenkins](https://www.jenkins.io/) は、デベロッパーがソフトウェアを確実に構築、テスト、デプロイできるようにするオープンソースのオートメーションサーバーです。

## エピック
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-epics"></a>

### ビルド環境をセットアップします。
<a name="set-up-the-build-environment"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| macOS を実行しているビルドサーバーに Jenkins をインストールします。　 | Jenkins を使用してアプリケーションを構築するので、最初に Jenkins をビルドサーバーにインストールする必要があります。このタスクとそれ以降のタスクの詳細な手順については、このパターンの最後にある「[関連リソース](#build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-resources)」セクションで、AWS ブログ投稿「[AWS DevOps とモバイルサービスを使用して、iOS および iPadOS のアプリを構築してテストする](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/)」とその他のリソースを参照してください。 | DevOps | 
| Jenkins を設定します。 | 画面上の指示に従って Jenkins を設定します。　 | DevOps | 
| Jenkins 用の AWS CodePipeline プラグインをインストールします。 | Jenkins が AWS CodePipeline サービスとやり取りできるようにするには、このプラグインを Jenkins サーバーにインストールする必要があります。　 | DevOps | 
| 自由形式の Jenkins プロジェクトを作成します。 | Jenkins で、自由形式のプロジェクトを作成します。トリガーやその他のビルド設定オプションを指定するようにプロジェクトを設定します。 | DevOps | 

### AWS Device Farm を設定する
<a name="configure-aws-device-farm"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Device Farm プロジェクトを作成します。 | AWS Device Farm コンソールを開きます。テスト用のプロジェクトとデバイスプールを作成します。手順については、ブログ記事を参照してください。 | 開発者 | 

### ソースリポジトリを設定する
<a name="configure-the-source-repository"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CodeCommit リポジトリを作成します。 | ソースコードを保存するリポジトリを作成します。 | DevOps | 
| アプリケーションコードをリポジトリにコミットします。 | 作成した CodeCommit リポジトにリコネクトします。　 コードをローカルマシンからリポジトリにプッシュします。 | DevOps | 

### パイプラインを設定する
<a name="configure-the-pipeline"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| AWS CodePipeline でパイプラインを作成します。 | AWS CodePipeline コンソールを使用してパイプラインを作成します。パイプラインは CI/CD プロセスのすべてのフェーズをオーケストレーションします。手順については、AWS ブログ投稿「[AWS DevOps とモバイルサービスを使用して、iOS および iPadOS のアプリを構築してテストする](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/)」を参照してください。 | DevOps | 
| パイプラインにテストステージを追加します。 | テストステージを追加して AWS Device Farm と統合するには、パイプラインを編集します。 | DevOps | 
| パイプラインを開始します。 | パイプラインと CI/CD プロセスを開始するには、**[変更をリリース]** を選択します。 | DevOps | 

### アプリケーションテストの結果を表示します。
<a name="view-application-test-results"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| テスト結果を確認します。 | AWS Device Farm コンソールで、作成したプロジェクトを選択し、テストの結果を確認します。コンソールには、各テストの詳細が表示されます。 | 開発者 | 

## 関連リソース
<a name="build-and-test-ios-apps-with-aws-codecommit-aws-codepipeline-and-aws-device-farm-resources"></a>

**このパターンのステップバイステップの説明**
+ 「[AWS DevOps とモバイルサービスを使用した iOS および iPadOS アプリの構築とテスト](https://aws.amazon.com/blogs/devops/building-and-testing-ios-and-ipados-apps-with-aws-devops-and-mobile-services/)」(AWS DevOps ブログ記事)

**AWS Device Farm を設定する**
+ [AWS Device Farm コンソール](https://console.aws.amazon.com/devicefarm)

**ソースリポジトリを設定する**
+ 「[新しい AWS CodeCommit リポジトリの作成](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-repository.html)」
+ 「[AWS CodeCommit リポジトリに接続する](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-connect.html)」

「**パイプラインを設定する**」
+ 「[AWS CodePipeline コンソール](https://console.aws.amazon.com/codesuite/codepipeline/home)」

**追加リソース**
+ 「[AWS CodePipeline ドキュメント](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)」
+ 「[AWS CodeCommit ドキュメント](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)」
+ 「[AWS Device Farm ドキュメント](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html)」
+ 「[Jenkins ドキュメント](https://www.jenkins.io/doc/)」
+ 「[macOS での Jenkins のインストール](https://www.jenkins.io/download/weekly/macos/)」
+ 「[Jenkins 用の AWS CodePipeline プラグイン](https://plugins.jenkins.io/aws-codepipeline/)」
+ 「[Xcode のインストール](https://developer.apple.com/xcode/)」
+ AWS CLI の [インストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html)と[設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)
+ 「[Git ドキュメント](https://git-scm.com/docs)」