Bluetooth LEを使ったアプリを作っている時、機器やCBPeripheralManagerで実装したデバイスがどういう挙動をするのか確認したいことがあります。
そんな時に便利なアプリがBLExplrです。機器が発信しているServiceやCharacteristicのUUIDを調べたり、値を確認したりすることができます。
BLExplrにはUUIDの名前などをオンラインアップデートで取得する機能が備わっています。作者のサイトにアップロードされているデータを取得しているようなのですが、あまり頻繁に更新されていないようです。
パケットキャプチャしてみたら、http://ios.mkroll.mobi/BLExplr/uuids-date-time.txt で更新をチェックして、http://ios.mkroll.mobi/BLExplr/uuids.plist で UUID を書き込んでいるということがわかったので、これならかんたん!と思い自分で作った uuids.plist を読みこませることにしました。
実際のやり方は続きで。
まず、WEBrick でプロキシサーバーを書きます。
次に、先ほどのURLから uuids-date-time.txt と uuids.plist をダウンロードしてきて、上記のスクリプトと同じパスに設置します。
MacとiPhoneを同じLAN内に接続して、先ほどのRubyスクリプトを実行して、iPhoneのWi-Fi設定からプロキシサーバーを Mac の IP のポート 18800 に向けます。*1
あとは BLExplr の Settings で 3rd Party UUID descriptions の Check for Update ボタンを押すと更新されます…が、どうやら初回しかデータ読み込んでないっぽいorz データ更新時はアプリの再インストールが必要のようです。
僕は、konashi のサービスを追加して読み込ませてみました。こんなかんじです!
2013/05/01(Wed) 追記
僕が使ってる uuids.plist 晒しておきますね。
*1:Mac のファイヤウォールが入になっている場合は一時的に切ってください