# 本物のiOSテストの環境のセットアップします

# 前提条件

iOSのテスト環境をセットアップするには、手順に従ってください。

# 本物のデバイスに必要な依存関係をインストールします

本物のiOSデバイスのAppiumサポートは、libimobiledeviceと呼ばれるサードパーティソフトウェアスイートに依存しています。次の通りに実行する:

brew install libimobiledevice --HEAD

注意

テストを実行する時に、Requested 'libusbmuxd >= 1.1.0' but version of libusbmuxd is 1.0.10のエラーが発生する場合は、以下の手順に従ってこれらの依存関係を更新します。

brew update
brew uninstall --ignore-dependencies libimobiledevice
brew uninstall --ignore-dependencies usbmuxd
brew install --HEAD usbmuxd
brew unlink usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice

次の依存関係はAppiumバージョン1.15未満が必要です。

  1. ios-deploy brew install ios-deploy
  2. authorize-ios npm install -g authorize-ios
  3. ideviceinstaller brew install ideviceinstaller
  4. ios_webkit_debug_proxy brew install ios-webkit-debug-proxy

注意

Appium 1.15以上では、ios_webkit_debug_proxyをインストールする必要はありません。

# 署名証明書とプロビジョニングプロファイルを準備します

アプリをデバイスにインストールする前に、Appleに発行された証明書で署名する必要があります。プロビジョニングプロファイルは、開発者とデバイスを承認済みのiPhone開発チームへユニークに結び付け、デバイスをテストに使用できるようにするデジタルエンティティのコレクションです。

MACに開発用署名証明書およびプロビジョニングプロファイルが既にあった場合は、以下の内容を無視してください。

  • 最初に、有料iOS開発アカウントが必要です。 ない場合は、ここで登録してください。

  • iOS開発アカウントを取得したら、XcodeにiOS開発アカウントを追加します。

    1. Xcodeを開きます。
    2. xCode -> Preferences...を選択します。
    3. Accountsタブをクリックします。
    4. アカウントを追加するには+ボタンをクリックします。
    5. アカウントのタイプでApple IDを選択して、Continueをクリックします。
    6. Apple IDPasswordを入力します。
    7. Addをクリックして、アカウントが下記のように表示されます。 add-development-account
  • 今、Xcodeを使用して、開発署名証明書を生成します。

    1. xCode -> Preferences...を選択します。
    2. Accountsタブをクリックします。
    3. 左側でアカウントを選択します。
    4. チームを選択して、Manage Certificatesをクリックすると、Signing certificatesダイアログが開きます。
    5. 署名証明書シートの左下コーナーで、+追加ボタンをクリックします。
    6. ポップアップメニューからApple Development証明書を選択します。
    7. Keychain AccessApplications>utilitiesフォルダーにある)を開いて、My Certificatesを選択して証明書を確認します。 development-certificate
  • 最後に、プロビジョニングプロファイル開発の準備については下記の手順に従ってください。

    1. iOSプロビジョニングポータルにログインします。
    2. プロビジョニングプロファイルにiOSのテストデバイスを追加します
    3. 開発プロビジョニングプロファイを作成します

TIP

開発用署名証明書(.p12)と開発用プロビジョニングプロファイル(.mobileprovision)をエクスポートして共有してから、他のMACにインストールできます。詳細についてはWebDriverAgentをビルドするセクションを参照してください。

# WebDriverAgentをします

# ローカル証明書とプロビジョニングプロファイルを使用してビルドします

Macで署名証明書およびプロビジョニングプロファイル準備してから、完全な手動設定ガイドでWebDriverAgentをビルドできます。

# 共有した証明書とプロビジョニングプロファイルを使用してビルドします

一方、別のMacでWebDriverAgentをビルドするには、署名証明書プロビジョニングプロファイルを共有したい場合、 以下の手順に従ってください。

  1. Macで、開発署名証明書 (example_Certificates.p12)および開発プロビジョニングプロファイル (example_Provision.mobileprovision)をエクスポートします。

  2. ターゲットMacで、「Keychain Access」(Applications/utilitiesにあります)を開きます。 「My Certificates」を選択し、 example_Certificates.p12をドラッグアンドドロップして証明書をインポートします。

  3. ターミナルを開き、次のコマンドを実行します。

  • Appium Desktopユーザーの場合:
cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium-webdriveragent

./Scripts/bootstrap.sh –d

mkdir -p Resources/WebDriverAgent.bundle
  • Appium-Serverユーザーの場合(コマンドラインのみ):
cd /usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent

./Scripts/bootstrap.sh –d

mkdir -p Resources/WebDriverAgent.bundle
  1. Xcodeで WebDriverAgent.xcodeprojを開きます。 これは./appium-webdriveragentフォルダーにあります。

    • WebDriverAgent > WebDriverAgentRunnerを選択します。
    • Automatically manage signingチェックボックスをオフにします。
    • プロビジョニングプロファイルの下で、先ほど準備したexample_Provision.mobileprovisionファイルを選択します。
    • メニューバーで、Product > buildを選択します。

build-webdriveragent

# テスト用のアプリケーションを再署名します

未公開のアプリケーションをiOSテストデバイスにインストールするには、プロビジョニングプロファイルにデバイスのUDIDが含まれる必要があります。場合によっては、アプリケーションの埋め込みプロファイルを置き換え(さらにデバイスを追加したり、ハイブリッドアプリケーションをテストするために配布から開発に切り替えたり)、ソースからアプリを再ビルドしたくないです。方法は下記のとおりです。

  1. 開発プロビジョニングプロファイルをMacの場所にエクスポートします。

  2. Applications/Utilities/Keychain Accessに移動しMy Certificatesを選択し、<Signing Identity>を取得する。 Signing Identity

  3. AUTのipaファイルを含むフォルダーで次のコマンドを実行します。例:YourAUT.ipa

security cms -D -i path/to/YourProfile.mobileprovision > provision.plist

/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' provision.plist > entitlements.plist

unzip YourAUT.ipa

rm -rf Payload/YourAUT.app/_CodeSignature/

cp path/to/YourProfile.mobileprovision Payload/YourAUT.app/embedded.mobileprovision 

codesign -f -s "<Signing Identity>" --entitlements entitlements.plist Payload/YourAUT.app

zip -qr YourAUT-resigned.ipa Payload/

# gondola.json

以下は、実際のデバイスのAppiumの desiredCapabilitiesです。 プロジェクト/デバイスに合わせて変更する必要があります。

{
    // 簡潔にするために行を削除しました
    "Appium": {
        // 簡潔にするために行を削除しました
        "app": "<Full path to your app>",
        "desiredCapabilities": {
            "automationName": "XCUITest",
            "platformName": "iOS",
            "platformVersion": "13.1", // iOSバージョンの実際のデバイス
            "deviceName": "iPhone 11 Pro Max", //デバイスの名前
            "udid": "<udid of real device>", //実際のデバイスが1つだけ付いてる場合は、udidが"auto"にセットします。デバイスが付いている場合は、このデバイスに実行します。付いていない場合は、シミュレーターデバイスに実行します。
            // 簡潔にするために行を削除しました
        }
    }
    // 簡潔にするために行を削除しました
}

# 実際のiOSデバイス上のモバイルSafari

Safariでテストを実行する前に、デバイスで次のSafari設定を有効にする必要があります(settings > safari > advanced)

  1. JavaScript
  2. Webインスペクター
  3. リモートオートメーション

Safari設定

最終更新: 2020/12/28 4:12:58