Magic Podの使い方 > iOS実機にうまく接続できない場合の回避策
iOS実機を使ったテストにおいて、端末への接続やテスト実行の際に「Error: Unable to launch WebDriverAgent because of xcodebuild failure: "xcodebuild failed with code 65".」というエラーが起きることがあります1 。現状こうしたエラーが起きた場合は、以下のようにXcodeでダミーのProjectを作成することで、必要な設定が自動的に行われます。
目次
エラーを回避するための設定
まず最初に、テスト実行に利用するiOS実機をUSBケーブルでMac PCに接続しておきます。
続いて、Macのアプリケーション一覧から「Xcode」を開きます2 。(図1)
起動したら、画面上部メニューから「File」>「New」>「Project」を選び、iOSの「Single View App」を選んで(他の種類のiOSのアプリケーションでも可)「Next」を押します。(図2)
続いてプロジェクト情報の指定画面で以下の値を指定します。(図3)
- 「Organization Identifier」が空の場合は、世の中にある他の組織と重複しない適当な値を指定します。
- 「Organization Name」が空の場合は、そちらも適当な値を指定します。
- 「Product Name」に、「xctrunner」を指定します。
- 「Team」の項目に、今回の実機テストで利用する「チームID」に対応するApple IDのTeamを選びます3 。
その後「Next」を選び、次画面で「Create」を選ぶと、Projectが作成されます。
作成したProject情報の画面が表示されたら、画面左上の端末表示を、現在USBケーブルで接続されているiOS実機に変更します。(図4)
この画面にて、図5のように「Signing」のセクションに「Team」が指定され、エラーが出なくなっていれば設定は完了です。
図6のようにエラーが出ている場合は、iOS実機をUSBケーブルで接続して「Register Device」ボタンを押す、などしてエラーを解消してください。
iOS実機テストを実行する際には、Xcode11以降の場合は、テスト編集画面にて、「WDA用バンドルID」に<Xcodeで作成したOrganization Identifierの値>を指定します(図7)。
Xcode10以前の場合は、<Xcodeで作成したOrganization Identifierの値>.xctrunnerを指定します。
最後にiOS実機端末を再起動します。(図8)
この状態で端末への接続やテスト実行を行えば、エラーが出なくなるはずです。
パスワード関連のエラーが出る場合
codesignのパスワード認証ダイアログ(図11)にて、何度パスワードを入力しても成功しなかったり、Xcodeの「signing」のセクションで「The user name or passphrase you entered is not correct.」というエラーが出たりする場合は、以下の手順で問題を解決できるはずです。4
- 「アプリケーション」>「ユーティリティ」フォルダから起動できる「キーチェーンアクセス」(図9)にて、「ログイン」の項目を右クリックして「キーチェーン"ログイン"をロック」を選び(図10)、続いて「キーチェーン"ログイン"のロックを解除」を選んでパスワードを入力し、ロックを解除状態に戻します。5
- 図11のパスワード認証ダイアログでは、パスワードを入力後に、「許可」ではなく「常に許可」を選択するようにします。
上記を実施後、エラーを回避するための設定をやり直してください。まだエラーが出る場合は、キーチェーン「ログイン」のロックとロック解除を再度試してください。6
Xcode 10以降とiOS 12以前の端末の組み合わせを利用している場合
接続がうまく行かない場合に、こちらの手順に従ってMagic Pod DesktopのLog Levelを「Magic Pod Bug Investigation」にすると、以下のようなメッセージが表示される場合があります。
1 2 3 4 5 |
(...) Testing failed: WebDriverAgentRunner: WebDriverAgentRunner-Runner.app (217) encountered an error (Failed to load the test bundle. (Underlying error: バンドル“WebDriverAgentRunner”は、壊れているか必要なリソースがないため読み込めませんでした。. バンドルが壊れているか、必要なリソースがありません。. dlopen_preflight(/var/containers/Bundle/Application/A2B6B2E8-87C0-4BF9-A13B-48F1FBE0CD86/WebDriverAgentRunner-Runner.app/PlugIns/WebDriverAgentRunner.xctest/WebDriverAgentRunner): Library not loaded: /System/Library/Frameworks/CoreServices.framework/CoreServices (...) |
この場合は、次の手順で問題を解消できることがあります。
- こちらからXcode 9.*をダウンロードして解凍し、適当なフォルダに移動する
- 現在利用中のバージョンのXcodeを起動する
- 「Preference」 -> 「Locations」 >「Command Line Tools」にて、1.で解凍したバージョンのXcodeを選択する(図12)
- 選択後に、選択されたXcodeの場所を移動すると、正常に動作しなくなるので注意してください
なお、iOS12以降の端末と接続を行う場合は、Command Line Toolsの選択を毎回元に戻す必要があるので注意してください。
それでもうまくいかない場合
まずは以下の点を確認してください。
- 上記の設定作業において使用したTeamは、iOS実機のテストで指定しているTeam IDに対応するものですか?
- 上記のXcodeの設定作業において、Project画面左上の端末表示は、USBケーブルでPCに接続した端末になっていますか?
- 複数のXcodeをPCにインストールしている場合、設定を行ったXcodeのバージョンと、テストで利用しているXcodeのバージョンは同じですか?
- iOSシミュレータが起動していませんか?起動している場合は終了してください。
- 利用しているApple開発者プログラムのIDは有料のものですか? 無料版の利用は推奨していません。
特に問題無いようなら、Apple開発者プログラムのiOSの「Certificates, Identifiers & Profiles」のページにログインし、さらに次の点を確認してください。
まず、Certificatesの項目にCertificateが登録されていることを確認してください。(図13)

次に、「App IDs」の項目に、IDの値が「<Xcodeで作成したOrganization Identifierの値>.xctrunner」とマッチするものがあることを確認してください(図14)。なお、「*」は任意の文字列とマッチするパターンです。

最後に、「Devices」の項目に、テストで利用する端末が登録されていることを確認してください。(図15)

Xcodeの設定がうまくいった場合は、上記3点の情報が自動生成されているはずです。うまく生成されていない場合は、Xcodeの設定をもう一度やり直すか、Apple開発者プログラムの画面上から情報を直接作成・編集してください(直接作成・編集をした場合は、念のためエラーを回避するための設定をやり直してください)。
それでもまだうまくいかない場合は、下記を実施すると問題が解消される可能性があります。
- /Users/ユーザー名/Library/MobileDevice/Provisioning Profiles以下にある「プロビジョニングプロファイル」を削除した上でXcodeを再起動し(再起動しないとXcodeに削除が認識されません)、エラーを回避するための設定をやり直します。なお、作成日付が新しい「プロビジョニングプロファイル」がフォルダ内に無い場合は、作成がうまくいっておらず、エラーを回避するための設定の手順がうまくいっていません。
それでもさらにうまくいかない場合は、可能性は低いですが下記手順で問題が解消される可能性があります。
- /Users/ユーザー名/Library/Developer/Xcode/DerivedData以下にある、「WebDriverAgent-***」のディレクトリを削除する
- MacのActivity Monitorでiproxyという名前のプロセスが無いか調べ、あれば全て終了しておく
- iOS実機端末にWebDriverAgentRunnerのアプリがインストールされている場合は、アンインストールしておく
- Xcodeの「キーチェーンログインのパスワードを入力してください」でパスワードが通らないのページに記載された、XcodeのApple IDおよび証明書を再取得する手順を試す
- こちらのページに記載されている、Appium及びXcodeの問題です。 [↩]
- 複数のバージョンのXcodeがPCにインストールされている場合は、テストで利用しているXcodeと同じバージョンのものを開いてください [↩]
- Teamの選択肢が複数あってどれか分からない場合は、Xcode上部メニューの「Xcode」>「Preferences」>「Accounts」の「Apple IDs」の項目で、Apple IDとTeamの対応を確認できます。 [↩]
- エラーの原因はXcodeの何らかのバグだと思われます。 [↩]
- The user name or passphrase you entered is not correct. [↩]
- パスワード認証ダイアログで「拒否」を押してしまった場合にも、キーチェーン「ログイン」のロックとロック解除を行うことで再度ダイアログが表示されるようになります。 [↩]