iOS で CoreBluetooth を使用し、Mac で IOBluetooth を使用している iOS および OS X Yosemite でアプリケーションを開発しています。iOS アプリは「中心」の役割を果たし、Mac アプリは「周辺」の役割を果たします。
基本的に、iOS アプリ (セントラル) は周辺機器を見つけるためにスキャンを開始し、Mac アドバタイジング周辺機器データを見つけると、セントラルはそれに接続し、そのサービスと特性を発見できます。
私の問題は、iOS アプリが Mac 広告を見つけるためにスキャンを開始し、それを見つけると (このステップは常に機能します)、接続を試みますが、成功しないことがあります。
周辺機器に再び正常に接続できるようにするには、iOS ボタンから Bluetooth をオフにしてからオンにする必要があります。
もう1つの奇妙なことは、セントラルが同じ状況にあると想像してください(接続しようとしても成功しません)。OS X では、システム ステータス バーのネットワーク アイコン (Wifi シンボル付き) をクリックすると、利用可能なすべての Wi-Fi ネットワークのリストが表示され、iPhone が「パーソナル ホットスポット」としてリストに追加されると、この時点で、中央 (iPhone 上にある) が周辺機器 (Mac) に接続できます。
この問題により、iPhone がランダムに Mac に接続できなくなるため、アプリの使用が大幅に損なわれます。
同様のケースを見つけるために、インターネット(Google、Stackoverflowなど)で何日も費やしました。私は多くの記事を読み、たとえば 10 秒後に接続が成功しなかった場合にスキャンを停止して再開するなど、多くのことを試しました。
私の質問が明確でない場合は、遠慮なく言ってください。必要に応じて更新します。
ご協力いただきありがとうございます。これを修正する方法を本当に見つける必要があります。