iOSデバイス

このトピックでは、iOSデバイスのベストプラクティスについて説明し、iOSデバイスの問題に対する解決策を示します。

SIMカードなしでiOSデバイスを使用する

SIMカードがインストールされていない場合、XCUITESTを実行すると、SIMなしのポップアップが原因で、デバイスのプラグアンドプレイでクラッシュが発生する可能性があります。このクラッシュを回避するには、サンプルSIMカード (推奨) を使用するか、次のガイドラインに従うことができます。

  1. デバイスのシステム設定で、デバイスの自動ロックを30秒に設定します。
  2. iOSエージェントで、OpenText Functional Testing Labアイコンを2回タップします。
  3. VNCタブを選択します。

  4. デバイスのロック (デバイスのシステムの自動ロック設定でも発生する可能性があります) を回避するために、デバイスロックの回避オプションを1分に設定します。
    注: この設定を接続されているすべてのiOSデバイスに適用するには、管理設定 > iOSオプションで設定を構成します。これにより、接続されている各デバイスで手動で設定を構成する必要がなくなります。

  5. アプリケーション起動アラートの却下も有効にすることを強くお勧めします。設定が無効になっていてシステムアラートが発生すると、デバイスロックの回避機能の機能がブロックされ、デバイスがロックされる可能性があります。
    注: この設定を接続されているすべてのiOSデバイスに適用するには、管理設定 > iOSオプションで設定を構成します。これにより、接続されている各デバイスで手動で設定を構成する必要がなくなります。

トップに戻る

アプリの証明書について何を知っておくべきですか?

すでにデバイスにインストールされているアプリをインストールする場合は、必ずインストールしたアプリと同じ開発者証明書を使用してください。証明書が一致しない場合、インストールは失敗します。たとえば、デバイス上のアプリが証明書Aで署名されている場合、証明書Bで署名された同じアプリをインストールすることはできません。

デバイス上のアプリがエンタープライズ証明書で署名されており、開発者証明書で署名された同じアプリをインストールする場合も同様です。

回避策: 証明書が一致しない場合は、最初にデバイスにすでにインストールされているアプリを削除してから、他の証明書を使用してアプリをデバイスに再インストールします。

注: エンタープライズ証明書で署名された非パッケージハイブリッドアプリはサポートされていません。

トップに戻る

アプリにコード署名しようとすると、「証明書は不明な機関によって署名されています」という問題が発生する

Macintoshでアプリにコード署名するときは、Appleがキーチェーンアクセスアプリによって信頼できる機関として認識されるように、Appleの信頼できる機関の証明書をインストールする必要があります。Appleの信頼できる機関の証明書がインストールされていない場合、Appleによって発行された証明書は無効として表示されます。ソフトウェア署名証明書の詳細については、Apple Developerのドキュメントを参照してください。

キーチェーンアクセスアプリで証明書が無効 (赤) として表示され、その後に “This certificate was signed by an unknown authority” というエラーが表示される場合は、Apple Worldwide Developer Relations Certificate Authorityから新しい証明書をダウンロードしてインストールする必要があります。

invalid certificate

次のように証明書をインストールします。

1. Apple Developerサポートサイトから証明書をダウンロードしてください。

2. 証明書をダブルクリックします。

3. 有効 (緑色) であり、次のエラーが表示されないことを確認します。“This certificate was signed by an unknown authority”

Valid Apple Developer certificate

トップに戻る

再生中にiOSデバイスがロックされないようにする

デバイスが画面をロックするか、一定の間隔を置いてスリープするように設定されている場合、これは再生に影響を与える可能性があります。

接続されているすべてのiOSデバイスがロックされないようにするには、[管理設定] > [iOSオプション] で [自動ロックを禁止する] 設定を構成します。これにより、接続されている各デバイスで手動で設定を構成する必要がなくなります。

または、デバイスの画面がロックされないように手動で設定するには、スリープの表示設定が「なし」に設定されていることを確認してください。

デバイスがスリープ状態を続けて画面をロックする場合は、回避策を適用して、デバイスに疑似アクションを送信し、デバイスがスリープ状態にならないようにし、デバイスのロックを解除したままにすることができます。この回避策で使用される疑似アクションは、音量アップおよび音量ダウンコントロールです。テストの手順には影響しませんが、デバイス画面に一定の間隔でコントロールが短時間表示されます。

このアクションを設定するには:

  1. デバイスで、エージェントアプリケーションを開きます。
  2. OpenText Functional Testing Labアイコンで、画面を2回タップします。高度な開発者バーが画面の下部に表示されます。

  3. 右下のボタンVNCをクリックして、VNCサーバーの詳細設定を表示します。
  4. デバイスロックの回避機能の右側の値の列をクリックします。
  5. 疑似アクションをデバイスに送信する間隔を1~5分から選択します。

トップに戻る

iOSデバイスのログファイル

デバイスのクラッシュログは、いくつかの方法で取得できます。

方法 ファイルの場所
Linuxサーバー/コネクターマシンでファイルを探す
  1. ディレクトリをlinuxディレクトリに変更します。
    サーバーマシンに接続されているデバイス:
    <Linuxサーバーフォルダーへのパス>/server/libimobiledevice/linux
    スタンドアロンコネクターに接続されているデバイス:
    <Linuxコネクターフォルダーへのパス>/connector/libimobiledevice/linux
  2. 次のコマンドを実行します。
    ./idevicesyslog –u <UDID>
Windows サーバー/コネクターマシンでファイルを探す
  1. コマンドプロンプトウィンドウを開き、次のフォルダーに移動します。
    サーバーマシンに接続されているデバイス: <Windowsサーバーフォルダーへのパス>\server\libimobiledevice\win
    スタンドアロンコネクターに接続されているデバイス: <Windowsコネクターフォルダーへのパス>connector\libimobiledevice\win
  2. 次のコマンドを実行します。
    idevicesyslog –u <UDID>
Macコネクターマシンでファイルを探す
  1. ディレクトリをlinuxディレクトリに変更します。
    cd /opt/FunctionalTestingLabForMobileAndWeb/connector/libimobiledevice/mac
  2. 次のコマンドを実行します。
    ./idevicesyslog –u <UDID>
iTunesと同期する

MacOS Mojave (10.14) のみ:
iTunesと同期して、ファイルをマシンにコピーします。ファイルは次の場所にコピーされます。

  • Windows: C:\Users\<USERNAME>\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice\<DEVICE_NAME>
  • Mac: ~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>
デバイスから共有する

デバイスの次の場所でクラッシュ情報を見つけます。[設定] > [プライバシー]。下にスクロールして、[分析] をタップします。

Xcode Organizerを開く

(macOSとXcodeが必要です)

  1. デスクトップマシンでXcodeを起動します。
  2. Xcode Organizerウィンドウを開きます。(ウィンドウメニュー > Organizer、またはCmd-Shift-2。)
  3. 左側のサイドバーでデバイスを見つけて、デバイスログを選択します。

トップに戻る

オリエンテーション手順に関する問題

iOSでアプリのパッケージバージョンを記録すると、レコーダーはホームナビゲーションステップの後に2つの方向ステップを生成します。

トップに戻る

デバイスのコントロールペインからダウンロードされた空のデバイスログ

iOSデバイスのタイムゾーンは、コネクターマシンのタイムゾーンと一致している必要があります。タイムゾーンが調整されていない場合は、空のテキストファイルがダウンロードされます。

トップに戻る

リモートデバイスの画面ビューアーでログインボタンまたはアプリの他の要素をクリックできない

ソフトキーボードなどの特定の要素は、物理デバイスには表示されますが、リモートデバイスのディスプレイには表示されません。これは、Appleのセキュリティ強化によるものです。これらの「見えない」要素が他の要素の上に配置され、ユーザーがそれらを操作できない場合があります。たとえば、ソフトキーボードを [ログイン] ボタンの上に配置して、ユーザーがクリックできないようにすることができます。

トップに戻る

仮想キーボードとセキュリティ保護されたパスワードが表示されない

iOS 13以降で実行されているデバイスでセキュリティで保護されたパスワードを入力すると、仮想キーボードとセキュリティで保護されたパスワードがリモートデバイスの画面ビューアーに表示されません。

Appleのセキュリティ強化により、リモートスクリーンビューアーを使用してデバイスでパスワードを入力すると、仮想キーボードが表示されず、セキュリティで保護されたパスワードフィールドにテキストが表示されません。物理デバイスでは、キーボードとパスワードの視覚的インジケーター (ドット) の両方が表示されます。テキスト/キーボードが表示されていなくても、期待どおりにテキストが送信されます。

オプション [デバイスにテキストを送信] を使用した場合も同じ動作が見られます。表示されていなくても送信されます。

トップに戻る

AccessibilityIdが識別に使用されない

パッケージ化されたiOSアプリの記録と再生では、accessibilityIdではなく、accessibilityLabelプロパティと値をオブジェクト認識に使用します。テストロジックがaccessibilityIdプロパティと値を使用して特定のオブジェクトを区別し、パッケージアプリのテストを計画している場合は、次のようにデバイスを設定します。

  1. デバイスで、エージェントアプリケーションを開きます。
  2. エージェントのロゴで、画面を2回タップします。高度な開発者バーが画面の下部に表示されます。

  3. 画面右下のVNCボタンをクリックして設定を表示します。
  4. パッケージ化されたアプリにaccessibilityIdを使用するをオンにします。

トップに戻る

iOS 12以降で実行されているデバイスを接続できない - 「SIMがありません」アラート

SIMカードまたはサンプルSIMカードをデバイスに挿入します。

または、デバイスとデバイス上のエージェントアプリを次のように手動で構成します。

  1. デバイスで、[設定] > [画面表示と明るさ] > [自動ロック] を選択し、タイミングを30秒に設定します。
  2. デバイスでエージェントアプリを開きます。
  3. OpenText Functional Testing Labアイコンを2回タップします。開発者向けオプションのタブバーが下部に表示されます。
  4. VNCアイコンをタップし、デバイスロックの回避を1分に設定します。

注: この設定を接続されているすべてのiOSデバイスに適用するには、管理設定 > iOSオプションで設定を構成します。これにより、接続されている各デバイスで手動で設定を構成する必要がなくなります。

トップに戻る

iOSアプリがクラッシュする

起動またはレコードの開始後にアプリが常にクラッシュする場合、またはアプリケーションのインストールオプション (実際のオプション名は使用しているツールによって異なる場合があります) を選択してもアプリを起動できない場合は、次のいずれかを実行します。

  1. アンインストールまたは削除オプションを使用してテストを実行します。

    ツール オプション名
    OpenText Functional Testing [モバイル] タブ > [記録と実行環境設定] ダイアログボックスで [アンインストール] チェックボックスを選択します。
    TruClient [OpenText Functional Testing Lab設定] タブ > [TruClientの全般設定] ダイアログボックス > [実行後にアプリケーションを削除]
    Sprinter OpenText Functional Testing Labの [アプリケーション] タブにある [アンインストール] ボタン。
  2. 再パッケージ化されたAUTをデバイスにインストールし、[再起動] オプションのみを使用します。

    ツール オプション名
    UFT One [モバイル] タブ > [記録と実行環境設定] ダイアログボックスで再起動します。
    TruClient OpenText Functional Testing Lab設定タブ > [TruClientの全般設定] ダイアログボックスでアプリケーションを再起動します。
    Sprinter OpenText Functional Testing Labの [アプリケーション] タブにある [再起動] ボタン。

トップに戻る

エージェントがデバイスで起動しない

エージェントがデバイスで起動しない場合は、デバイスがサーバーまたはコネクターマシンによって認識されていることを確認します。

Linux

  1. 以下に移動します。
    サーバーマシンに接続されているデバイス
    /<サーバーのインストールへのパスフォルダー>/server/libimobiledevice/linux/
    または
    スタンドアロンコネクターに接続されているデバイス
    /<コネクターインストールフォルダーへのパス>/connector/libimobiledevice/linux/
  2. idevice_id –lを実行します。

このコマンドの結果は、デバイスID (UDID) のリストになります。コマンドが空の結果またはエラーメッセージを返す場合は、次のことを試してください。

  1. OpenText Functional Testing Labサーバーまたはコネクターマシンにrootとしてログインします。
  2. 「usbmuxd」のプロセスIDを見つけます。
    ps aux | grep 'usbmuxd'
  3. プロセスを強制終了します。
    kill –9 <processID>
  4. usbmuxdを再度開始します。
    usbmuxd
  5. idevice_id –lを再度実行して、デバイスが認識されているかどうかを確認します。

Windows

  1. コマンドプロンプトウィンドウを開き、次のフォルダーに移動します。
    サーバーマシンに接続されているデバイス: <Windowsサーバーフォルダーへのパス>server\libimobiledevice\winまたは
    スタンドアロンコネクターに接続されているデバイス:
    <Windowsコネクターフォルダーへのパス>\libimobiledevice\win
  2. 次のコマンドを実行します。idevice_id –l

このコマンドの結果は、デバイスID (UDID) のリストになります。デバイスがUSBポートに接続されているときにデバイスがリストされていない場合、これは次のことを意味している可能性があります。

  • USBポートが機能しない (ハードウェアの問題)
  • iTunesがインストールされていないか、コネクターコンピューターで最新バージョンのiTunesを使用していません。iTunesの最新バージョンをダウンロードします。

トップに戻る

エンタープライズ認定アプリが起動しない

テストを通じてエンタープライズ認定アプリ (OpenText Functional Testingなど) を起動しようとすると、Appleがユーザーにデバイス上のアプリを手動で承認するように要求するため、アプリを初めて起動したときに起動が失敗する場合があります。承認を求めるエラーメッセージは、テストツールのインターフェイス (OpenText Functional Testingなど) には表示されません。ただし、アプリを手動で起動すると表示されます。

解決策: アプリを手動で起動し、その証明書を承認します。次に、テストを通じて起動します。

トップに戻る

URLナビゲーション手順がXCUITestデバイスでは記録されない

XCUITestデバイスで記録する場合、URLナビゲーションは記録されませんでした。
解決策: URLへのナビゲーションがテストの最初のステップである場合は、JavaScriptインジェクションが完了していることを確認するために少なくとも5秒待ちます。アドレスバーを1回クリックしてキーボードを開きます。ダブルクリックしたり、[クリア] ボタンを押したりしないでください。PCキーボード (デバイスではなく) を使用して完全なURLを入力し、Enterキーを押します。

トップに戻る

日付選択アクションが失敗する

日付ピッカーを使用して日付を選択する場合は、必ず30秒以内に選択してください。時間選択の期間が30秒を超えると、エージェントはタイムアウトになります。この問題は、iOSデバイス上の非パッケージアプリにのみ適用されます。

トップに戻る

応答しないデバイス

デバイスが期待どおりに機能しない場合は、すべての設定をリセットしてみてください。たとえば、リモートアクセスが機能しない、タップが応答しない、アプリがインストールされないなどの場合は、元のデフォルト設定に戻します。

  • [一般] > [リセット] > [すべての設定をリセット] を選択します。
  • デバイスの初期設定の手順に従ってください。
  • トップに戻る

    エージェントが動作を停止する

    エージェントがデバイスでの作業を停止した場合は、次の手順を実行します。

    • USBケーブルを抜いてデバイスを取り外します。
    • 5秒待ってから、USBケーブルでデバイスを再接続します。

    それでも問題が解決しない場合:

    • エージェントアプリとすべてのテスト対象アプリケーション (AUT) をデバイスから削除します。
    • デバイスで開いているすべてのアプリを閉じます。
    • 5秒待ってから、デバイスをUSBポートに再接続します。

    最後の手段として:

    • デバイスを再起動します。エージェントが再インストールされます。
    • デバイス上のシステムポップアップをすべて受け入れます。
    • USBケーブルを外してデバイスのプラグを抜きます。5秒待ってから、デバイスを再接続します。

    トップに戻る

    その他の参照項目: