よくある質問

MonoFlick の使い方とトラブル対処

初回ペアリングから経路の使い分け、電池節約まで、よく聞かれる質問をまとめました。

1初回ペアリング 2接続パターン 3接続トラブル 4通信と権限 5Dock 取り込み 6電池節約 7MPC と BLE 8マウスがカクつく 9アンインストール

Q1. iPhone と最初にペアリングする手順は?

  1. Mac アプリを起動するとメニューバーに 6 桁の PIN が表示されます。
  2. iPhone で「MonoFlick」を起動するとペアリング画面が出ます。
  3. 経路を選択 — 同じ Wi-Fi にいる場合は MPC 経路(候補をタップ)、Wi-Fi が無い場合は「Wi-Fi なしでペアリング (Bluetooth)」ボタン経由の BLE 経路。
  4. PIN を入力 →「接続」→ 鍵交換後にメニューバーから PIN が消えればペア完了。
  5. 以降は端末が近くにいれば自動的に再接続します。両経路が並走で立ち上がります。
PIN は接続失敗ごと、または「PIN を再生成」ボタンで作り直せます。経路の使い分けは次の Q を参照。

Q2. 初回ペアリングのパターン

初回ペアリングは Wi-Fi の有無で経路を選びます。ペア完了後は MPC(Wi-Fi)と BLE(Bluetooth)の両方が自動で使えるようになります。

シナリオ 経路 操作
同じ Wi-Fi にいる MPC(推奨) ペアリング画面の候補をタップ → PIN 入力
Wi-Fi が無い・繋げない BLE 単独 「Wi-Fi なしでペアリング」ボタン → 候補タップ → PIN 入力
ペア完了後の再接続・経路切替の挙動(屋内 / 屋外 / 移動中など)は、仕様書(02_protocol.md §2.x)にシナリオ別の一覧があります。

Q3. 接続できないときに確認すること

  • アクセシビリティ権限 Mac の「システム設定 → プライバシーとセキュリティ → アクセシビリティ」で MonoFlick Companion が ON になっているか。OFF だとキー入力が Mac に反映されません。
  • Bluetooth 権限と電源 両端末の Bluetooth が ON か、初回起動時のプロンプトで許可したか。iPhone は「設定 → MonoFlick → Bluetooth」、Mac は「システム設定 → プライバシーとセキュリティ → Bluetooth」を確認。
  • ローカルネットワーク権限 MPC(Wi-Fi)経路のために必須。iPhone 側は初回プロンプトで許可、Mac 側は「ローカルネットワーク」セクションを確認。
  • PIN を再生成 メニューバーの「PIN を再生成」を押してから、iPhone 側で再ペアリングを試す。
  • BLE が「Mac を探索中…」のまま進まない macOS の Bluetooth サービス (bluetoothd) が内部的に詰まっている可能性。MonoFlick Companion のメニューバーから「環境設定 > 接続」または「エラー一覧」を開き、「Bluetooth サービスを再起動」ボタンで bluetoothd を再起動してください(ターミナル派は sudo pkill bluetoothd でも同じ結果)。BT チップ自体は ON のままなので、無線マウスなど他の BT 機器の切断時間も最小です。その後 MonoFlick Companion を起動し直してください。

    なお Bluetooth を OFF→ON する手順でも復旧はしますが、無線マウス利用中は OFF にした瞬間にマウスが効かなくなり ON に戻せなくなることがあるため非推奨です。
  • アクセシビリティ設定が機能していない(チェック ON でも入力が届かない) 「システム設定 → プライバシーとセキュリティ → アクセシビリティ」で MonoFlick Companion が ON のはずなのにキー入力が Mac 側で発火しない、あるいは ON / OFF を切替ても挙動が変わらない場合は TCC データベースに古いエントリが残っている可能性があります。MonoFlick Companion のメニューバーから「環境設定 > アクセシビリティ」を開き、「アクセシビリティ権限をリセット」ボタンで TCC レコードを削除してください(ターミナル派は tccutil reset Accessibility dev.foo.MonoFlick.Companion でも同じ結果)。その後 MonoFlick Companion を起動し直してから「設定を開く」プロンプトに従って再度許可してください(他のアプリの権限には影響しません)。
  • それでもダメな場合 iPhone 側で「ペアを解除」してから初回ペアリングからやり直す。Keychain 内の古い credential がクリアされて状態がリセットされます。

Q4. 通信は安全?何が必要な権限?

通信内容は Curve25519 (ECDH) の鍵交換で得た 32 byte の共有秘密を使って認証されます。MPC は AES-256 で暗号化、BLE は L2CAP CoC 上にアプリ層 HMAC-SHA256 認証が乗ります。

保存場所:

  • ペア情報(共有秘密) iOS / Mac それぞれの Keychain。iCloud 同期はしない設定。
  • キーバインド設定 iOS の Documents ディレクトリに JSON ファイル。「ファイル」アプリから可視。
  • ランチャー設定 iOS の UserDefaults。

必要な権限:

  • Mac: アクセシビリティ CGEvent でのキー / マウス注入のため必須。
  • Mac: ローカルネットワーク MultipeerConnectivity の peer 発見のため。
  • Mac / iOS: Bluetooth BLE 経路を使う場合。OFF でも MPC のみで動作可能。

Q5. Mac の Dock アプリを iPhone のランチャーに取り込むには?

  1. iPhone の歯車(設定)→ ランチャーセクションを開く。
  2. 「Mac の Dock から取り込み」ボタンをタップ。
  3. Mac から Dock の永続アプリ一覧が届いてシートに並びます。
  4. 追加したいアプリを選んで「追加」を押す。既に登録済みのものは「登録済み」表示でスキップされます。
Dock を並べ替えたら再度同じ手順で取り込み直しできます(重複しないので何度押しても安全)。

Q6. iPhone の電池を長持ちさせるコツは?

iPhone 側で Wi-Fi を OFF にすると BLE だけが使われるようになり、Wi-Fi 無線の常時 ON 状態が解消されて電池消費が大幅に下がります。

  • 影響あり Mac から大きなデータ(Dock 取り込み、起動中アプリのアイコン)を送る場面は少し遅くなる。
  • 影響なし フリック入力 / キーバインドの 1 打 / トラックパッドのクリックなど、通常の操作は体感差ゼロ。
  • 切り戻し Wi-Fi を ON に戻せば自動で MPC が再接続します(再ペアリング不要)。

Q7. MPC と BLE、どちらが使われるの?

両方有効な場合は MPC を優先し、Wi-Fi が無い/不安定な環境では BLE に自動フォールバックします。下表が比較です。

MPC (AWDL / Wi-Fi) BLE (L2CAP CoC) 勝ち
スループット 数 Mbps〜数十 Mbps 数十〜数百 kbps MPC(大差)
レイテンシ(1 キー) 約 5–20ms 約 15–50ms MPC(体感差小)
キー入力のリアルタイム性 余裕で十分 余裕で十分 どちらでも OK
トラックパッド .pointerMove(60Hz) 安定 帯域・connection interval 的に厳しい場面あり MPC
runningApps / Dock 一覧 (数 KB〜数十 KB) 一瞬で届く 数百 ms〜秒オーダー MPC
電池消費(iPhone) Wi-Fi 無線常時 ON 大幅に低い BLE
屋外 / Wi-Fi 無し 不可(AWDL/Bonjour なし) BLE
接続安定性(移動・干渉) AWDL は他 BT 機器と干渉して切れる事あり 短距離なら安定 BLE
ペアリング フル機能(PIN + ECDH) BLE 単独でも初回ペアリング可(PIN + ECDH を L2CAP 上で完結) どちらでも OK

結論

  • デスク作業・室内 両方 ON のまま運用。実質 MPC が使われ、runningApps / Dock 取り込みなどの重い操作も速い。
  • 屋外・電車・カフェで Wi-Fi 切る MPC が使えず自動で BLE のみに切り替わる。
  • バッテリー節約(在宅でも長時間使う) あえて iPhone の Wi-Fi を切って BLE のみ運用にすると電池が大幅に持つ。フリック入力だけなら速度差は気にならない。
  • MPC を完全に切りたい場面 通常は無し。AWDL が混雑して切れまくる時は自然に BLE が選ばれる。
MenuBar の MPC / BLE バッジで現在どちらが繋がっているかを確認できます。両方点灯=室内モード、BLE だけ点灯=屋外モード、と読み替えられます。

Q8. マウス操作がカクつくときは?

Mac でマウス/トラックパッドの動きがカクつく場合は、メニューバーの MonoFlick アイコン → 「環境設定」→ 接続 セクションで 「Bluetooth 経由の接続(BLE)を有効化」を OFF にしてください。 Bluetooth マウスなど他の BT 機器と帯域や connection interval を取り合うことでカクつくケースがあります。MPC(Wi-Fi)経路は引き続き有効なので、屋内利用ならこのままで動作に支障はありません。

手順 1: BLE を OFF にする

  1. メニューバーの MonoFlick アイコン → 「環境設定」 を開きます。
  2. 「接続」セクションの 「Bluetooth 経由の接続(BLE)を有効化」 を OFF にします。
  3. iPhone との通信は MPC(Wi-Fi)のみに切り替わり、マウス動作が回復します。

手順 2: 屋外で BLE が必要になったら再起動

屋外 / Wi-Fi が無い環境に出るときは BLE を ON に戻します。OFF → ON の切替直後にうまく再接続しない場合は、後述の Bluetooth サービス再起動を試してください。

  1. メニューバーの MonoFlick アイコン → 「環境設定」 を開きます。
  2. 「接続」セクションの 「Bluetooth 経由の接続(BLE)を有効化」 を ON に戻します。
  3. iPhone 側でアプリを開き、しばらく待つと自動的に BLE 再接続します(ペアリング情報は Keychain に保持されているため再ペアリング不要)。
  4. 30 秒待っても接続されない場合 → 次の「Bluetooth サービスを再起動」へ。

手順 3: それでも繋がらないとき(Bluetooth サービス再起動)

macOS の bluetoothd プロセスが内部的に詰まっていると、BLE を ON にしても advertising が動かないことがあります。Companion 側に再起動ボタンを用意しています:

  1. メニューバーの MonoFlick アイコン → 「環境設定」→ 接続 を開きます。
  2. 「Bluetooth サービスを再起動」 ボタンを押下します。
  3. macOS の管理者パスワード入力ダイアログが出るので入力(TouchID 可)。
  4. bluetoothd が SIGTERM で停止 → launchd が即時 respawn → BLE radio はそのまま ON のままで内部 state だけ初期化されます。
  5. 無線マウス等の Classic BT 機器の切断時間は最小限(数秒)。
  6. その後 Companion を一旦終了して再起動すると確実です。

ターミナル派は次のコマンドで同じ結果になります:

sudo pkill bluetoothd
Bluetooth を OFF→ON の手順でも復旧しますが、無線マウス利用中は OFF にした瞬間にマウスが効かなくなり ON に戻せなくなることがあるため 非推奨です。「Bluetooth サービスを再起動」ボタンか sudo pkill bluetoothd なら BT チップは ON のままなので安全です。

Q9. アンインストール(完全削除)の手順

MonoFlick はサーバを介さない 2 点間アプリのため、削除も各端末でローカルに行います。 通常の「アプリを捨てる」だけでは残るデータがいくつかあります。完全削除したい場合は下の手順で進めてください。

Mac コンパニオン — まず Preferences で権限をリセット

アプリ本体を削除する 前に、MonoFlick Companion の環境設定からアクセシビリティ/Bluetooth の許可を リセットしておくと、システム設定のプライバシーリストから自動的に項目が外れます。 後で「リストに残ったまま消せない」と困らないための一番楽な順番です。

  1. メニューバーの MonoFlick アイコンをクリック → 「環境設定」 を開きます。
  2. 「アクセシビリティ」セクションの 「アクセシビリティ権限をリセット」 ボタンを押し、確認ダイアログで「リセット」を選択。
    内部的に tccutil reset Accessibility dev.foo.MonoFlick.Companion が走り、自アプリ分の TCC レコードのみが削除されます(管理者パスワードは不要)。
  3. 同じ環境設定の「接続」セクションにある 「Bluetooth 権限をリセット」 ボタンも同様に実行します。
  4. 2 つのリセットが完了したら、メニューバーから 「終了」 でアプリを停止します。
ローカルネットワーク権限には tccutil reset が公式に対応していないため、リスト残りが気になる場合は後述「③」で手動削除します。

Mac コンパニオン(本体の削除)

  1. Finder で /Applications を開き、MonoFlick Companion.app をゴミ箱へ移動します。
  2. ゴミ箱を空にしてください。
ここまでの「Preferences リセット → 終了 → アプリ削除」で、再インストール時には「初回起動と同じプロンプトから」になります。 ペアリングのし直しもこれで完了。

Mac コンパニオン(完全削除 — 残存データも消す)

  • ① 環境設定などの UserDefaults ターミナルで以下を実行すると、MonoFlick Companion のすべての設定値が削除されます。
    defaults delete dev.foo.MonoFlick.Companion
    (対応するファイル: ~/Library/Preferences/dev.foo.MonoFlick.Companion.plist
  • ② 共有秘密(キーチェーン) ペアリング完了時に保存される暗号鍵を削除します。Keychain Access.app を開き、検索欄に dev.foo.MonoFlick.Companion.pair と入力 → 該当項目を右クリック → 「削除」
    ターミナル派は次のコマンドでも同じ結果になります:
    security delete-generic-password -s "dev.foo.MonoFlick.Companion.pair"
  • ③ ローカルネットワーク権限(リスト残り) アクセシビリティ・Bluetooth は前述の Preferences リセットで既に消えています。ローカルネットワークだけは tccutil reset 非対応のため、気になる場合は「システム設定 → プライバシーとセキュリティ → ローカルネットワーク」のリストから MonoFlick Companion のトグルを OFF にしてください(アプリ本体を消した時点で項目は無効化されていますが、リストには残ります)。
①②を消すと、再インストール時は完全な初回状態(PIN ペアリングから)になります。 家族の Mac を譲るなど「自分の痕跡を完全に消したい」場面ではここまで実施するのが安心です。

iPhone アプリ

  1. ホーム画面で MonoFlick アイコンを長押し → 「App を削除」「App を削除」 を選択。
  2. App とともに、UserDefaults / アプリ内データ・キーチェーンに保存された共有秘密も削除されます。
  3. App Store 経由のアプリは「設定 → 一般 → iPhone ストレージ」からも個別削除できます。
ペアリング後にキーチェーンに保存される MonoFlick 用エントリは、アプリ削除時に同時に消えます(iOS の標準挙動)。 再インストール後は新たに PIN ペアリングから始まります。

片側だけ消したとき

  • Mac だけ削除し、iPhone は残している iPhone 側に共有秘密だけが残ります。Mac を再インストールした場合、PIN ペアリングからやり直しになります。iPhone のペア情報は次回ペアリング時に上書きされます。
  • iPhone だけ削除し、Mac は残している Mac 側のキーチェーンに古い共有秘密が残ります。再インストール後の初回 PIN ペアリングで自動的に上書きされるため、放置しても実害はありません。気になる場合は上記「② キーチェーン」の手順で削除してください。