背景
昔お試しで作ったWiimoteを自動でペアリングするアプリ(MacのBluetoothStack?の壁1は乗り越えられず失敗に終わった)を久しぶりに動かそうとしたらBluetoothでエラーが出るようになっていた。
どんなエラーだったかは記録し忘れたがアプリは実行できるがBluetoothのAPIを叩くところでエラーログ出てたような気がするが詳細は別の記事を参照のこと。
対処法
info.plistに以下のようなKeyを登録すれば済むらしい。公開しないからstringはなんでも良いと思われる。
<dict>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>What to use bluetooth</string>
<dict>
だが、自分のアプリ環境をチェックしたところ、info.plistがないことがわかった。調べてみるとXcode 13以降で作成したアプリはデフォルトではinfo.plistが生成されないらしい。
左側のツリーからプロジェクトルートを選択して、プロジェクト情報が表示されたら、Info を選択。Document Types (0) となっているので、> をクリックしたら+ボタン(?)が現れる。これをクリックする。
するとプロジェクトツリーにInfoというファイルが作成されるのでここに上記したNSBluetoothAlwaysUsageDescriptionを追加すればいい。
参考にした記事
-
macOS VenturaあたりからWiiリモコン(Wiimote)はMac内蔵のBluetoothアダプタでは接続できなくなった。Dolphinの海外Forumあたりで投稿を見かけるが解決方法はなさそう。OSを上げたことで接続できなくなったのでソフトの問題だと思われる。 ↩