Dock 経由で接続された外部アクセサリを使用した iOS アプリのデバッグ
質問
明らかに明らかな何かが欠けているのでしょうか、それとも、バケツにロードされたログなどを使用せずに、30 ピン ドック経由で接続されている外部アクセサリを使用する iOS アプリをデバッグする方法はないのでしょうか。ブレークポイントやインストゥルメントなどを使えるようにしたいです。
Wi-Fi や Bluetooth 経由でリモート デバッグする方法はありますか?
注記: はい、つい最近質問したのですが、答えを見つけたと思ったので削除しました。しかし、答えは、Wi-Fi 経由でサポートされているのは Instruments のみでした。Xcodeのデバッグではありません。それで、疑問はまだ残っています...
など...: 私が実際に答えを見つけることができず、まだ誰も私に答えを与えていないことを考えると、それは大きな問題であると私は考えています いいえ. :(
私たちは、バグが発生する場所を魔法のように推測したり、デバイスとアクセサリの間でドック コネクタを継続的に往復させて消耗させながら、すべてを記録したりすることを期待しているだけなのでしょうか?
バグレポートを提出する時期が来たようです。
解決
今日の CES で、iPhone 用の ANT+ アクセサリを製造している Wahoo Fitness の開発者と話をしました。彼らも同じ問題を抱えていましたが、解決策を見つけました。
彼らは、ミニ USB ポートを備えたパススルー ドック エクステンダーを見つけました。アクセサリが接続されている間、ミニ USB ポートをデバッグに使用しました。
彼らが使用していた製品は、 http://www.cablejive.com/products/dockStubz.html
このブログ ドック アクセサリを接続した iOS のリモート デバッグについて説明します
他のヒント
外部アクセサリを別の iOS デバイス (Xcode デバッガを実行している Mac に接続されているデバイスではない) に接続できます。次に、すべての EA フレームワーク メッセージを、アクセサリに接続されたデバイスから、デバッグ対象のアプリを実行しているデバイスに、1 組の Wi-Fi ソケット経由でトンネルします。これを行う方法の一例として、デバイスから iOS シミュレーターに加速度計のメッセージをトンネリングするコード (シミュレーターでゲーム コードをデバッグするための一般的なトリック) を見てください。
さらに調査を進め、これを回避するには Wi-Fi 経由で文字列を送信する必要があることを確認した結果、答えはノーであると結論付けています。
これに関してバグリクエストを提出しました。
それまでの間、今のところは Wi-Fi ログとデバイス上のテキスト ログが採用されるようです。
USB プロトコルだけが一部の外部アクセサリでは機能し、他の外部アクセサリでは機能しない理由についての私の理解は次のとおりです。根本的な問題のようです。アービトレータがなければ、2 つのマスターが USB (シリアル マスター/スレーブ プロトコル) 経由で 1 つのスレーブと通信できません。したがって、XCode は 1 つのマスターであり、iPhone はスレーブ デバイスです。外部アクセサリもマスターである場合、iPhone (Xcode スレーブ) を 2 番目のマスター (外部アクセサリ) に接続することはできません。
おそらく iPhone 用 Wahoo Key はスレーブ デバイスであり、それが dockStubz ソリューションがそのような外部アクセサリに対して機能する理由です。
dockStubzをテストしました。外部アクセサリでは動作しません。推測のとおり、USB プロトコルを使用して 2 つのマスター デバイスが 1 つのスレーブ デバイスを制御することはできません。Mac (マスター) (ミニ USB 経由) および外部アクセサリ (マスター) (30 ピン コネクタ経由) を iPhone 4 (スレーブ) に接続しようとすると、iPhone が接続と再接続のループに入ります。
以下も有望ですが、高価です。digi.com/support/kbase/kbaseresultdetl.jsp?id=485。
USB - Ethernet コネクタを使用し、ルーターを使用して 2 つのマスター (XCode と外部アクセサリ) からのリクエストをスレーブ (iPhone) にルーティングしようとした人はいますか?USB - イーサネット ケーブルを購入し、3 本すべてを IP ルーターに接続するために Best Buy に行きます。うまくいったら報告します。
http://www.frys.com/product/6103339
- したがって、オス側を使用して XCode Mac をコンピュータの USB スロットに接続します。。イーサネットケーブルを使用してルーターに接続します。
- iPhoneをIOギアコネクタのメス部分に接続します。イーサネットケーブルを介してルーターに接続します。
- 外部アクセサリをオス コネクタ (Sabrent USB - ファスト イーサネット ネットワーク アダプタ) に接続します。ルーターに接続します。
これがうまくいくかどうかはまだ研究中です。先ほど部品を注文しました。金曜日までに届く予定ですので、またご報告させていただきます。
アップデート:IOGear のオス側は、ルーターに接続すると大量の電流を消費します。また、ルーターに接続されている場合、5V USB電流が供給されている場合でも、メス側はiPhoneを充電できません。
そこでルーター(プリンター用)のUSBスロットにiPhoneを直接接続してみました。iPhoneを充電してくれます。また、Mac をルーターに接続するために、USB - ファスト イーサネット ネットワーク アダプター (BestBuy には Wii を USB 経由で接続するアダプターがありました) も使用しました。インターネットには接続できましたが、iPhone が見つかりませんでした。ルーターのクライアントリストには、iPhone のログイン全体が表示されません。したがって、誰かが他の指針を示さない限り、この実験は失敗でした。