私のアプリは BLE (Bluetooth 4) を使用して物理的な周辺機器に接続しています。私のユーザーと私は、ある時点でアプリが周辺機器への接続を停止するというバグに繰り返し遭遇しました.BLE周辺機器が検出され、接続が確立されたという兆候を見ることができますが、数秒後に接続が切断されます. .
iDeviceを再起動した後にのみ、物事は正常に戻ります。
これは iOS のバグに違いないという結論に達するまで、非常に長い時間をかけてこの問題を調査し、徹底的に調査しました (7.1 でテストしましたが、8.0 でも発生する可能性があります)。
私のテストと調査結果:
- iDevice をサポートするすべての BLE で発生します。
- 自分の BLE 周辺機器と他のサード パーティの BLE 製品の両方で発生し、どちらも正常に動作することが知られています。
- 50 回の起動でもうまく機能することもありますが、最終的には失敗します。
- ネットワークと工場出荷時の設定にリセットしても解決しませんでした。
- さまざまなアプリケーションでテストおよび発生しました: ##
- 私自身のアプリ。
- 周辺機器のみをスキャンし、最初で唯一発見された周辺機器に接続しようとしている新しい Xcode プロジェクトをクリーンアップします。
- Apple の BLE サンプル アプリ:健康温度計(この特定の周辺機器を持っていないため、関連する変更を加えたもの)。
- 一般的なLightBlueを含むサードパーティのアプリ。
- 重要な注意:上記のオプションはすべて、しばらくの間 (複数回の起動) 完全に機能しましたが、ある時点で突然停止し、デバイスの再起動後に再び機能しました。
- 周辺機器のサービスを検出しようとすると、接続手順が失敗するようです。つまり、正常に検出されて接続されますが、サービスの検出を開始すると、応答が停止します (didDiscoverServices が呼び出されません)。
- もちろん、オンラインで見つかった多くのアプローチを試してみましたが、うまくいきませんでした。
誰でもこの問題に光を当てることができますか?
- それは既知の問題ですか?
- 最近の iOS アップデートで修正されましたか?
- 修正される予定はありますか?
製品には BLE 接続が不可欠であるため、このような問題がユーザー エクスペリエンスに及ぼす悪影響は想像に難くありません。
解決方法についてアドバイスや提案をいただければ幸いです。
ありがとう!
アップデート:
Apple は、私の技術サポート リクエストに次のように答えました。
ボトムライン):
- 彼らは、iOS 8 でいくつかの BLE 関連のバグを修正したと述べ、iOS 8 でまだ発生するかどうかをテストするよう促しました。
- 彼らはそれから始めて、そうでない場合は、彼らが提供するユーティリティアプリで問題を診断してみてください.
これまでのところ、iOS 8 では発生しませんでしたが、一方で、他の Bluetooth の問題に関する投稿を見ることができます。これらは必ずしも関連しているわけではありませんが、誰が知っているのでしょうか。
完全な答え:
あなたとあなたの顧客が、ある時点で iOS BLE が接続を維持できないことに気付いたというあなたの発見に応えています。問題が iOS 7.1 で確認されたことを示しています。iOS BLE に関する問題が報告されており、iOS 8.0 で修正されています。問題が解決されたかどうかを判断する最も簡単な方法は、iOS 8 をインストールして、問題が再現されるかどうかを確認することです。ただし、iOS 7.1 を搭載したデバイスで問題を再現できると報告しているため、最初に Bluetooth サーバー プロファイルを取得し、デバイスにインストールして問題を再現し、問題が発生したときに BLE サーバー ログを取得します。プロファイルには、サーバーが遭遇した問題を報告するのに役立つ追加のログの詳細が報告される BLE サーバーが含まれます。問題が以前に報告されたものであるかどうかを確認できます。考慮すべきことは、すべての新しいバグ レポートの問題について、Core Bluetooth エンジニアリングが、現在出荷されている iOS のバージョン (8.0) ですべての問題を改善するよう要求していることです。iOS 7.x を使用しているお客様の場合、iOS 7 の更新はなくなります。すべてのソフトウェア修正とバグ修正は iOS 8 で行われます。このため、iOS 8 で報告された問題のみが調査されます。BLE サーバー プロファイルは、Apple Developer バグ レポート Web ページから入手できます。iOS 7 の更新はなくなります。すべてのソフトウェア修正とバグ修正は iOS 8 で行われます。このため、iOS 8 で報告された問題のみが調査されます。BLE サーバー プロファイルは、Apple Developer バグ レポート Web ページから入手できます。iOS 7 の更新はなくなります。すべてのソフトウェア修正とバグ修正は iOS 8 で行われます。このため、iOS 8 で報告された問題のみが調査されます。BLE サーバー プロファイルは、Apple Developer バグ レポート Web ページから入手できます。https://developer.apple.com/bug-reporting/ios/bluetooth/ . プロファイルをインストールしてログを取得する手順は、Web ページに記載されています。iOS 7.x でログをキャプチャした場合は、レビューのために送信できます。iOS で問題が解決するかどうか、または問題が解決しないかどうかを知るには、問題が iOS 8 で発生するかどうかを確認する必要があります。 8、以前のバージョンに復元することはできません。結果をご確認いただければ幸いです。ただし、iOS 8 でも問題が解決しない場合は、バグ レポートを送信して、この問題についてコア Bluetooth エンジニアリングの注意を引くことをお勧めします。Apple Developer バグ レポート Web ページを使用して、バグ レポートを送信できます。- http://bugreport.apple.com