iOS Gatewayを始める
はじめに
最初に、iOS Gatewayをダウンロードしてインストールします。 iOS Gatewayは、MacOS 10.14、10.15、11、12、および13で動作し、iOS 10からiOS 16、およびiPadOS 13からiPadOS 16までのデバイスへの接続をサポートしています。
Eggplant Functionalは、Sauce Labsが提供するiOSデバイスに直接接続してテストが可能になりました。 Sauce Labsは、クラウド上に各バージョンのiOSデバイスを提供します。 Sauce Labsを利用する場合、iOS Gatewayを利用する必要がありません。 Sauce Labsのデバイス接続は、Eggplant Functionalに統合されています。
詳細情報はEggplant Functionalのユーザードキュメント内のConnecting to Mobile Devicesをご確認ください。
Eggplant Functional 22.5がリリースされる前は、iOS GatewayがiOSデバイスをEggplant Functionalに接続する唯一の方法でした。 (上記で述べたように、クラウドでホストされたデバイスに接続するためにSauce Labs Connectionsを使用することはできますが、ユーザが所有するデバイスに接続するにはiOS Gatewayが必要でした。) しかし、Eggplant Functional 22.5のリリースにより、Eggplant FunctionalのMobile Device Connectionsを使用し、直接iOSモバイルデバイスに接続することができるようになりました。 Mobile Device Connectionsを使用することで、iOS Gatewayを利用することなく、iOSモバイルデバイスに接続することが可能です。 この接続方式はEggplant Functionalに統合されており、Windows、Linux、Macintoshからアクセス可能です。 現在、iOSモバイルデバイスをEggplant Functionalに接続するための推奨方法となっています。 Mobile Device Connectionsに関する詳細は、Eggplant Functionalユーザードキュメント内のモバイルデバイスへの接続を参照してください。 Mobile Device Connectionsが問題なく動作する場合は、iOS Gatewayおよび関連ドキュメントはスキップしてください。
Mobile Device Connectionsは、iOSモバイルデバイスをEggplant Functionalに接続するための推奨方法ですが、Eggplant Functionalがインストールされた端末に直接接続されているiOSモバイルデバイスのみが利用対象となります。 この制約により、iOS Gatewayがサポートしているような、ネットワーク全体でiOSモバイルデバイスを共有するというユースケースでは、Mobile Device Connectionsを使用することはできません。 モバイルデバイスを組織内で共有している場合は、そのままiOS Gatewayをご利用ください。 ただし、可能な限りMobile Device Connectionsを使用することがEggplantから推奨されています。
iOS Gatewayを使用すると、Eggplant FunctionalのViewer windowとConnection Listを使用して接続を管理することで、他のSUTと同じ方法でiOSデバイスに対してテストを作成することができます。
命名規則についての注意点
前述のはじめにで説明したように、iOS GatewayはEggplant FunctionalのMobile Device Connectionよりも先に存在していました。 iOS GatewayはEggplant FunctionalとiOSデバイスを接続するための無料ユーティリティです。 ただし、このドキュメント内では、それを「iOS Gateway」と呼びます。 混乱する場合は、"Gateway"という用語はこのスタンドアロンのアプリケーションを指し、"Mobile Device Connection"という用語はEggplant Functionalに直接統合されている新しい接続を指すことを覚えておいてください。
iOS Gatewayの仕組
iOS GatewayはVNCサーバとして動作します(実行されているMacのIPアドレスから接続される) 。Eggplant FunctionalからそのMacに接続すると、iOSデバイスを見ることができ、制御することができます。
iOS Gatewayが稼働しているMacは、Eggplant Functionalをインストールしたマシンと同一である必要はありません。 ただし、iOS GatewayがインストールされているMacには、iOSデバイスをUSBで接続する必要があります。 以下の図は、iOS Gatewayを使用するための基本的なネットワークアーキテクチャを示しています:
システム要件
iOS Gatewayを実行しているMacには、Appleの統合開発環境(IDE)であるXcodeをインストールする必要があります。 通常、新しいバージョンのiOSがリリースされると、Appleは新しいバージョンのXcodeもリリースします。 iOS GatewayでiOSの同伴バージョンをテストするためには、Xcodeを最新バージョンに更新する必要があります。
テストしたいiOSのバージョンが、必要とするmacOSスペックとXcodeのバージョンを決定します。 一般的に、最新バージョンのiOSを実行するデバイスをテストするためには、iOS Gatewayを最新バージョンのmacOSで実行する必要があります。
macOSの必要スペック | iOS | 推奨Xcode |
---|---|---|
10.14.6 | iOS 9-13 iPadOS 13 | Xcode 11.3.1 より新しいバージョン |
10.15.7 | iOS 14 iPadOS 14 | Xcode 12.3 |
macOSバージョンとXcode IDEをアップグレードするためには、新しいMacが必要な場合があります。 最良の結果を得るためには、M1 Mac Miniまたはそれ以上の性能の端末でiOS Gatewayを実行することをお勧めします。
Mac上のXcodeのアクティブバージョンが、テストしたいデバイスのiOSバージョンと互換性があるかどうかを確認するには、Diagnosticsタブを使用できます。
iOS Gatewayの古いバージョンは、Xcodeの古いバージョンと互換性があり、古いバージョンのiOSを持つデバイスのテストに使用できます。 古いデバイスのテストを可能にするために、Mac上にiOS GatewayとXcodeの複数のバージョンをインストールすることができます。
アクティブなXcodeバージョンの切り替え
古いバージョンのiOSを持つデバイスをテストしている場合、Macに複数のXcodeバージョンをインストールする必要があるかもしれません。 一度に複数のXcodeバージョンをインストールすることができますが、Active
なバージョンは1つだけです。
MacにXcodeの複数のバージョンを持つ必要がある場合は、最新のバージョンの名前をXcode.appに変更し、古いバージョンの名前をそのバージョン番号を含むように変更することをお勧めします。
アクティブなXcodeのバージョンを変更するには、以下の手順を実行します:
- Xcodeを開きます。
- Xcode > Preference > Locationsに進みます。
- Command Line Toolsのドロップダウンメニューから、アクティブにしたいXcodeのバージョンを選択します。
- 必要に応じて管理者パスワードを入力します。
- Xcodeを閉じます。
アクティブなXcodeバージョンを切り替えるためには、Macに管理者権限が必要です。
iOS Gatewayの仕組み
まず、iOS Gatewayをダウンロードし、インストールします。iOS Gatewayを使用してiOSデバイスをテストするためには、Apple Developer IDが必要です。
推奨ハードウェア
- M1 Mac Mini またはそれ以上の性能のもの
利用可能なポート
以下のポート範囲がiOS Gatewayでのテストに利用可能である必要があります:
- VNC: 5900-5950
- WebDriver: 8100-8150
手動プロビジョニング
手動でプロビジョニングを設定するには、開発用の署名証明書と開発用のプロビジョニングプロファイルの両方が必要
です。
Apple Developerポータルで署名証明書とプロビジョニングプロファイルを作成します。 両方をMacにダウンロードします。
Generalタブで、Profileドロップダウンリストからプロファイルを手動で選択します。 iOS Gatewayは、デフォルトの場所に保存されているすべてのプロファイルを自動的に表示します。
注記プロファイルはデフォルトで
~/Library/MobileDevice/Provisioning Profiles
に配置されます。
iOSのMobile WebDriver
iOS GatewayとEggplant FunctionalのWebDriverコマンドと関数を使用して、iOSデバイス上でオブジェクトベースのWebDriverテストを実行できます。 Mobile WebDriverによるテストには、iOS Gateway 5.1.2以降、Eggplant Functional 18.1.2以降が必要です。
注記事項
テストデバイスは開発用に準備されている必要があります。 この情報、およびインストール手順は、Setting Up iOS Testingで見つけることができます。
最後に、開発用のアプリケーションに署名する設定が必要です。 これはAppleの要求です。iOS Gatewayを使用したアプリケーションの署名で詳しく学ぶことができます。