よくある質問・トラブル

Magic Podの使い方 > よくある質問・トラブル

よくあるトラブル・エラーメッセージと、その解決策についてご紹介します。

目次

  1. iOS アプリテスト
  2. Android アプリテスト
  3. ハイブリッド(WebView)アプリテスト
  4. ブラウザテスト
  5. Magic Pod Desktop
  6. その他

1. iOS アプリテスト

Error: Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65".

iOS実機にうまく接続できない場合の回避策を試してください。

キーチェーン"ログイン"のパスワード認証に失敗する

iOS実機にはじめてMagic Pod Desktopで接続すると、「codesignは、キーチェーンに含まれるキー"..."へアクセスしようとしています」というメッセージダイアログが出て、パスワードの入力を求められますが、何度入力してもパスワード入力が成功しない場合があります。

この場合は、パスワード関連のエラーが出る場合の回避策を試してください。

simctl error running 'list': dyld: Symbol not found:

Xcodeのバージョンアップなどにより、Xcodeの追加コンポーネントのインストールが必要になっている可能性があります。

Macのアプリケーション一覧から「Xcode」を起動し、「Install additional required components?」というメッセージが表示されたら「Install」を押して追加コンポーネントをインストールしてください。

Error: '**.*' does not exist in the list of simctl SDKs.

指定されたOSバージョンのiOSシミュレータがPCにインストールされていません。テスト編集画面で利用するiOSシミュレータのOSバージョンを変更するか、こちらの手順に従い対応するバージョンのiOSシミュレータをインストールしてください。

Error: Could not extract Info.plist from application

appファイルをiOSシミュレータにうまくインストールできません。こちらを参考にしてください。

This app could not be installed at this time.

appファイルをiOSシミュレータにうまくインストールできません。こちらを参考にしてください。

Could not get Xcode version. /Library/Developer/Info.plist does not exist on disk

原因は不明ですがXcodeがうまく認識できない状態になっています。Macのターミナルを開いて「sudo xcode-select --switch /Applications/Xcode.app」を実行すれば問題が解消されます。

Couldn't find a pair record for device ***. Please first pair with the device

Xcodeがケーブルで接続されたiOS実機を認識できていません。現在接続している実機に対し、iOS実機にうまく接続できない場合の回避策の手順を実施すれば問題は解消されます。

Could not install app: 'Command 'ios-deploy --id *** --bundle ***' exited with code null'

iOS実機端末とMac PC間の「信頼」設定がうまくいっていない可能性が高いです。問題を解消するには、以下の手順を試してみてください。

  1. iOS実機端末の「設定」>「一般」>「リセット」>「位置情報とプライバシーをリセット」を選択して、「信頼されたコンピュータ」の設定をクリアします。
  2. iOS実機端末を再起動します。
  3. iOS実機端末をMac PCにつなぎ、「このコンピュータを信頼しますか?」というメッセージが出たら「信頼」を押します。

うまく行かない場合、「ios-deploy --id *** --bundle ***」の部分のコマンドを直接Macのターミナルから実行すると、より詳細なエラーメッセージが得られます。「A valid provisioning profile for this executable was not found」というエラーが出た場合は、以下の手順でIPAファイルがテスト対象の端末で利用できるかを確認してください。

  1. IPAファイルをコピーして、拡張子を.zipに変更します。
  2. .zipをダブルクリックしてzipを解凍します。
  3. Payload/***.app/embedded.mobileprovisionの内容をテキストエディタでバイナリとして開き、ProvisionedDevicesの中にテスト対象の端末のUDIDが含まれているかを確認します。
  4. 含まれていない場合、IPAファイルは対象の端末上では利用できません。

この場合、以下の手順でIPAファイルを再作成してください。

  1. Apple開発者プログラムのページのDevicesにテスト対象端末のUDIDを登録します。
  2. 1.で利用したApple IDを使って、再度IPAファイル(Ad-HocまたはDevelopmentのもの)を作成します。

No profiles for '***' were found: Xcode couldn't find any iOS App Development provisioning profiles matching '***'

iOS実機にうまく接続できない場合の回避策を実施してください。

それでもうまく行かない場合は、

  • /Users/ユーザー名/Library/MobileDevice/Provisioning Profiles の下にXcodeのプロジェクトを作成した時間帯のファイルがあるか確認してください。無い場合は、iOS実機にうまく接続できない場合の回避策の設定がうまくいっていません。
  • ファイルがある場合は、Finder上で各ファイルを選択してMacのスペースキーを押してください。すると各ファイルの内容をプレビュー確認できるので、「App ID Name」が「XC Wildcard」またはiOS実機にうまく接続できない場合の回避策の設定で作成した「<Xcodeで作成したOrganization Identifierの値>.xctrunner」、「App ID」が利用しているチームIDに一致するファイルがあるか探します。そのようなファイルが無い場合は、やはりiOS実機にうまく接続できない場合の回避策の設定がうまくいっていません。

appファイルをうまくiOSシミュレータにインストールできない

appファイルに問題がある可能性が高いです。appファイルがこちらの手順に従い正しく作成されているか確認してください。

作成できているという場合は、以下の方法でappファイルが正常に動作するかを確認してください。

  1. 問題のあるappファイルを用意します。クラウド端末にアップロードしたappファイルの場合は、https://magic-pod.com/<組織名>/<プロジェクト名>/<ファイル番号>/get-upload-file のURLにブラウザからアクセスすることで、アップロードされたappファイルを取得できます。
  2. iOSシミュレータを起動します。
  3. 「xcrun simctl install booted <appファイルのパス>」を実行すると、アプリが起動中のiOSシミュレータにインストールされます。
  4. iOSシミュレータ上でアプリをタップして起動できれば、問題なく動作しています。

無料のApple開発者IDでiOS実機にうまく接続できない

可能なら、有料のものを使ってください。

やむを得ず無料のものを使う場合、以下の手順が必要です。

  • 「キーチェーンアクセス」の「証明書」からApple開発者IDに対応するものを探し、表示された「部署」の値を「チームID」として使用します。
  • WebDriverAgentRunner-Runnerのアプリが端末にインストールされるたびに、端末の「設定」アプリの「一般」>「プロファイル」からアカウントを許可する必要があります。
  • 証明書が短期間で切れるので、定期的にiOS実機にうまく接続できない場合の回避策を実施する必要があります。

Enterprise Deploymentのipaファイルを使い、iOS実機にうまく接続できない

可能なら、Ad Hoc DeploymentかDevelopment Deploymentのipaファイルを使ってください。

やむを得ずEnterprise Deploymentのものを使う場合、以下の手順で実機への接続が可能です。

  • ipaファイルを指定して端末との接続を行います。接続は完了しませんが、アプリは実機にインストールされます。
  • iOS実機端末の「設定」>「一般」>「デバイス管理」> 開発元名 >「...を信頼」>「信頼」をタップして開発元を信頼します。
  • 一度Magic Pod Desktopを終了します。
  • 再度ipaファイルを指定して端末との接続を行えば、次回からは接続が成功するようになります。
  • この操作は、iOS実機端末ごとに行う必要があります。

ただし、「WebView要素をHTMLとしてスキャンする」オプションを使用する場合、Development Deploymentのipaファイルが必要となります。予めご了承ください。

appファイルをiOSシミュレータ上で起動すると、Macのエラーダイアログが出る

インターネット上からダウンロードしたappファイルをiOSシミュレータにインストールして起動すると、「"..." can't be opened because Apple cannot check it for malicious software.」「"..." is damaged and can't be opened. You should move it to the Trash」のようなエラーダイアログが、シミュレータ上でなくMac上に表示されることがあります。これはそのappファイルに適切な署名がついていないことが原因です。

自社の信頼できるappファイルであることがわかっている場合は、MacのTerminalを開いて以下のコマンドを実行し、その後appファイルをシミュレータにインストールすることで、そのappファイルに対してエラーメッセージが出ないようにできます。

appファイルに署名をするという手もありますが、appファイルは通常社外に配布しないので、そこまで頑張るメリットはあまりないでしょう。

iOSシミュレータのシステムログを確認したい

こちらの手順が参考になります。

複数バージョンのXcodeを切り替えて使いたい

こちらに記載された手順に従い、複数のXcodeをダウンロードし、使いたいバージョンにxcode-select --switchして利用できます。

現在使っているXcodeのバージョンを確認したい

こちらの記事を参考にしてください。

画面左上のアプリ名をタップして前画面に戻りたい

iOS上で、あるアプリから他のアプリを開いた場合、画面左上のアプリ名をタップすると元のアプリの画面に戻ることができます。

この「戻るリンク」には対応するUI要素がないため、Magic Podの通常の「タップ」などのコマンドではタップできません。

回避策としては、画面の左上をタップすればこの要素をタップできるので、「スワイプ」コマンドでxが1%、yが1%の位置を1%だけ適当な方向にスワイプします。これで(1%、1%)の位置がタップされます。1

画面上の指定した位置をタップできるコマンドについては、今後追加予定です。

2. Android アプリテスト

error: device unauthorized

  • 利用しているAndroid SDKのバージョンが古い場合にこの問題が起きている可能性があります。こちらの手順に従い、最新のものをインストールし直してみてください。

Error: Could not find a connected Android device

  • Android端末がUSBケーブルできちんと接続できていない可能性があります(うまく接続できていれば、端末の充電マークが充電中の状態になっているはずです)。
  • Android端末の開発者向けオプションの設定が正しくできていない可能性があります。
  • Macのターミナルから「~/Library/Android/sdk/platform-tools/adb devices」を実行し、端末の情報が表示されるか確認してください。1つも出ない場合、設定や接続状態に問題があることが多いです。きちんと表示される場合、何かMagic Pod側の問題が起きている可能性があるのでサポートにご連絡ください。

Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]'; Code: '1'

x86エミュレータに実機用 (CPUがARM)のAPKをインストールしようとした時に発生します。解決策としては、APKのビルドオプションを調整する等して、x86向けAPKを作成する必要があります。具体的には、アプリの作りにもよりますが、こちらこちらを参考にしてください。

INSTALL_FAILED_SHARED_USER_INCOMPATIBLE: Reconciliation failed

今回インストールしようとしているアプリと同じ名前のアプリが既に端末にインストールされていて、インストール済みAPKと新しくインストールしようとしているAPKで署名が一致しないためエラーになっています。インストール済みのアプリを一度削除すれば、問題は解消されます。

ECONNREFUSED 127.0.0.1:8200

8200ポートはAndroid端末上のシステムプロセスと通信するためのポートなのですが、端末やMagic Podが利用しているAppiumのトラブルによりうまく接続できていないようです。うまくつながらない場合は以下をお試しください。

  • Magic Pod Desktopを立ち上げ直してください。
  • Android端末を再起動してください。
  • Android実機とPCをUSBケーブルでつないでいる場合は、一度接続し直し、接続に問題がないか確認してください。

3. ハイブリッド(WebView)アプリテスト

「WebView要素をHTMLとしてスキャン」でHTML要素が取得できない / HTMLの要素が見つからない

「WebView要素をHTMLとしてスキャン」オプションを使用するには テスト対象アプリのWebView コンテキストが見えている必要があります。それが見えているかどうかは、次の手順で確認できます。

  1. テスト端末をPCに接続する
  2. テスト対象アプリを操作し、WebView要素がある画面まで遷移する
  3. テスト端末のOSに応じて以下の操作をする
    1. (Androidの場合) PCのChromeを立ち上げ、「chrome://inspect」と入力する
    2. (iOSの場合) PCのSafariを立ち上げ、画面上メニューの「開発」を開く
      • 既に立ち上げている場合は、一度Safariを終了して、再度立ち上げてください
      • Safariに「開発」メニューが見つからない場合は、こちらを参考に、表示させてください
  4. Chrome、Safariそれぞれで次のような画面表示にならなければ、WebViewのコンテキストを見えていません。こちらを参考に、テスト対象アプリあるいは端末側の設定を確認してください
Android で WebViewコンテキストが見えている場合
iOS で WebViewコンテキストが見えている場合

「WebView要素をHTMLとしてスキャン」でエラーが発生する/遅い

Android

次のようなエラーメッセージと共に、WebView HTMLのUIのキャプチャが失敗する場合があります。

この場合、アプリ内でsetWebContentsDebuggingEnabled(true) が呼び出されていない可能性があります。こちらの記述を参考に、setWebContentsDebuggingEnabled(true) が呼び出されているかどうか確認してください。

iOS

次のようなエラーメッセージが「Appium Console」に複数回出ている場合があります。

[WD Proxy] Got response with status 404: {
[WD Proxy] "value" : {
[WD Proxy] "error" : "no such alert",
[WD Proxy] "message" : "An attempt was made to operate on a modal dialog when one was not open",
[WD Proxy] "traceback" : ""
[WD Proxy] },
[WD Proxy] "sessionId" : "0B4FC99E-DE0F-4E68-B7FC-C99034BA43FF"
[WD Proxy] }
[W3C] Matched W3C error code 'no such alert' to NoSuchAlertError

これは内部的に使用されているSafariが一時的にハングしてしまっていることが原因です。こちらで調査した限りでは、WebViewでロードするHTMLのサイズが3000行程度を越えると発生するようです。今のところ、HTMLのサイズを見直す以外の回避策は見つかっていません。なお、こちらで確認した範囲では、「WebView要素をHTMLとしてスキャン」自体は5-6分程度待てば終わるようですが、テスト実行時にも同様の問題が出る可能性があります。

4. ブラウザテスト

「ウィンドウ」範囲の画面キャプチャ取得時のトラブルと対処策

Mac上のブラウザテストで、「ウィンドウ」範囲の画面キャプチャが真っ暗になる

Mac OS Catalina(バージョン10.15)以上で発生します。

解決するには、Macの「システム環境設定」>「セキュリティとプライバシー」>「画面収録」にて、「Magic Pod Desktop」にチェックを入れ、Magic Pod Desktopを再起動します。

他の関係ないウィンドウの画面キャプチャが取得される

ブラウザウィンドウの上に別のウィンドウがあると、上にあるウィンドウの画像が取得されてしまいます。テスト実行時に他のウィンドウが上にかぶらないようにすることで、問題を回避できます。

外部ディスプレイ上で実行したテストの画面キャプチャが取得できない

複数のディスプレイを使用している場合、テスト実行中のディスプレイを自動検出してキャプチャが取得されます。ただし、以下の場合には正常に取得できません。

  • Macを使っている場合は外部ディスプレイ検出には対応していないため、メインディスプレイでテストを実行してください。
  • テストを実行しているウィンドウが複数のディスプレイにまたがっている場合は正しい検出ができません。いずれか1つのディスプレイにウィンドウが収まるようにしてください。
  • ノートPC等の高解像度ディスプレイと通常の外部ディスプレイを使用している場合は高解像度の方をメインディスプレイにしてください。逆にすると、テスト実行が進まず停止してしまう場合があります。
  • ディスプレイの配置が特殊な場合は検出に失敗することがあります。うまく行かない場合は配置を調整してみてください。
    • 検出可能な例
    • 検出に失敗する例(サブディスプレイの位置がメインディスプレイの端からはみ出している)

ベーシック認証が有効になっているサイトをテストしたい

例えばhttps://example.comに ユーザー名user1、パスワードpass1のBasic認証でアクセスする場合、https://user1:pass1@example.comというURLを使うことでアクセス可能です。

ただしSafariだけはこの方法でテストできません。Safariでベーシック認証テストを行いたい場合はお問い合わせください。

5. Magic Pod Desktop

Magic Pod Desktopにログインできない

  • 「指定されたメールアドレスまたはパスワードに誤りがあります」と表示された場合、メールアドレスまたはパスワードに問題があるか、これらを正しく認識できていません。
    • メールアドレスの入力エリアにユーザー名を入力していませんか?
    • GitHubアカウントでMagic Podにユーザー登録した場合、こちらの手順で問題を回避できます。
    • ブラウザからMagic PodのWebサイトにログインしてみてください。ログインできなければ、メールアドレス・パスワードが間違っています。
    • 設定ファイル(magic_pod_config.jsonファイル。詳細は、Macの場合はこちら、Windowの場合はこちら)を直接編集した場合、編集方法に問題があった可能性があります。設定ファイルがJSON形式で記述されているか確認してください。
    • 設定ファイルを直接編集していなくても、Magic Pod Desktopの問題でまれに設定ファイルの内容が不正になることがあります。その場合、Macであれば「/Users/<ユーザー名>/Library/Application Support/magic_pod_desktop/magic_pod_config.json」を、Windowsであれば「C:\Users\<ユーザー名>\AppData\Roaming\magic_pod_desktop\magic_pod_config.json」を一度削除すると、問題が回避できる可能性があります。
  • それ以外のエラーメッセージの場合は、通信やPCのセキュリティでエラーになっている可能性が高いです。
    • インターネットには接続できますか?
    • 社内プロキシサーバを利用していると問題が起きる場合があります。認証付きプロキシの場合、こちらの設定を実施することで問題を回避できます。
    • 手元のPCでFiddlerなどのローカルプロキシを使っていると、Magic Podの認証がうまくいかない場合があります。ローカルプロキシを終了した上で再度ログインしてみてください。

6. その他

テスト対象の要素がUIから選択できない

キャプチャしたUI上である要素を選ぼうとしても、別の大きな要素が選ばれてしまって目的の要素を選べない場合、大きな要素をクリックし、「この要素を一時的に隠す」を選択してください。大きな要素が隠れて下側にある目的の要素が選べます。

  • 目的の要素の上に多数の要素があって、一時的に隠す操作を何回か行う必要がある場合もあります。
  • 隠した要素は、別のUIに切り替えた時点で元に戻ります。消えてしまうことはありません。

クラウド端末にインストールしたモバイルアプリから社内サーバーに接続できない

プライベート環境に対するテストのページを参考にしてください。

Androidクラウド端末で「Androidクラウド端末はARM向けにビルドされたアプリに未対応です。」と表示される

Android クラウド端末内部では以下のようなエラーが発生しています。

Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]'; Code: '1'

具体的な内容についてはこちらを参考にしてください。

モバイルアプリが起動しない

  • Magic Podのエラーメッセージが何か出ていない確認してください。エラーメッセージが見つかったら、この「よくあるトラブル」ページにエラーに対する解決策が無いか探してみてください。
  • 端末のホーム画面からアプリのアイコンを手動でタップしてアプリを立ち上げてみてください。何かエラーメッセージが出るかもしれません。
  • それでも不明な場合は、Magic Podのサポートまでご連絡ください。
  • Magic Podを使わずアプリを直接端末にインストールして、アプリが立ち上がるか確認することもできます。立ち上がらない場合は、Magic Podでなくアプリのファイルに問題があるので、アプリの開発チームに確認してみてください。
    • iOSのappファイルの場合は、ローカルPCでiOSシミュレータを立ち上げ、appファイルをシミュレータのウィンドウにドラッグ&ドロップすると、アプリがインストールされます。
    • iOSのipaファイルの場合は、こちらの手順に従ってアプリを実機にインストールできます。
    • Androidのapkファイルの場合は、こちらの手順に従ってアプリを実機またはエミュレータにインストールできます。

クラウドのCIサービスで音声入力のテストをしようとすると、モバイルアプリがクラッシュする

CircleCIのMacインスタンスなど一部のクラウドCIサービスのマシンではマイクへのアクセスをするとアプリがクラッシュしてしまうようです。Magic Podの提供するクラウド端末ならこのような問題は起こりません。

MacのMagic Pod Desktopに環境変数が認識されない

.bash_profileなどに設定した環境変数は、Magic Pod Desktop.appには認識されません。環境変数の設定が必要な場合は、以下の手順を実施してください。

  1. Magic Pod Desktopのウィンドウのサイズを、マウス操作で拡大します。
  2. Environment variablesの項目に「変数名=値」の形式で環境変数を指定します。
  1. iPhone Xのように、時計表示の下に「戻るリンク」がある場合でも(1%、1%)の位置で問題ありません。 []