朝まだき 頁の奥で 文字めざむ
/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' \
'/Applications/Mac Mouse Fix.app/Contents/Info.plist'
/usr/libexec/PlistBuddy -c 'Print :CFBundleIdentifier' \
'/Applications/Mac Mouse Fix.app/Contents/Library/LoginItems/Mac Mouse Fix Helper.app/Contents/Info.plist'
Claudeを使うために、Macの地域もタイムゾーンもアメリカに変更した。
すると、ずっと無料で使えていたMac Mouse Fixで支払いを求められるようになった。システムの地域を中国本土にしていたときは、何の問題もなかったのに。
Claudeをごまかすつもりが、すべてのアプリをごまかしてしまったわけだ。
やりたいことは単純だ。システムの地域はアメリカのまま、Mac Mouse Fixだけ中国本土にしたい。
3.1.0のソースコードをざっと見ると、現在のLocaleから地域コードを読み取り、無料で使える地域のリストと照合していた。今回確認した時点では、リストにCNはあるが、USはない。実際に起きたことともつじつまが合う。
このアプリだけ地域を設定する
macOSでは、アプリごとの環境設定を保存して、システム全体の設定より優先させられる。ここで使うのはAppleLocaleだ。
まず、すでに設定されているかを確認し、元に戻せるよう結果を控えておく。キーが存在しないと表示されても問題ない。
次に、Mac Mouse Fixのバックグラウンド機能を無効にし、Helperが終了したのを確認してからメインアプリも終了する。その後、次のコマンドを実行する。
1行目でメインアプリ、2行目でバックグラウンドのHelperを設定する。この2つのBundle IDは、手元のアプリケーションパッケージで確認済みだ。Helperもライセンスの確認に関わるので、両方に設定する。
アプリを開き直してバックグラウンド機能を有効にし、両方のプロセスに設定を読み直させる。ウインドウを閉じるだけでは終了したことにならない。
続いて、最初の2つのreadコマンドをもう一度実行する。どちらもzh_CNを返せば、上書きする値は保存されている。ただし、実際にその設定が使われたかどうかは、アプリ内の地域表示やマウス機能の動作も確認して判断する必要がある。
地域と言語を混同しない
AppleLocaleはLocale、AppleLanguagesは優先する言語を指定する。en_CNは、言語が英語で地域の書式が中国本土という組み合わせを表せるが、画面まで英語になるとは限らない。表示言語は別に選ぶ必要がある。
タイムゾーンも別の設定だ。Mac Mouse FixのLocaleを上書きするために、Mac全体のタイムゾーンまで元に戻す必要はない。
元に戻したいときは
もともとこの2つのキーがなかった場合は、上書き設定を削除すれば、再びシステムの設定に従うようになる。
もともと値が入っていた場合は、控えておいた値に戻す。その後、同じようにメインアプリとHelperを再起動する。
今回は設定とソースコードを確認しただけで、「上書きしたら再び無料になった」という実際の比較検証まではできていない。また、この設定が変えるのはLocaleだけで、IPアドレスや位置情報、アカウントの地域は変わらない。他のアプリでも使えるかどうかは、そのアプリがどの情報を読み取っているかによる。
Bundle ID、一時的な起動引数、参考資料
この記事は、手元のMac Mouse Fix 3.1.0を対象にしている。別のバージョンやアプリで試すときは、まずInfo.plistからBundle IDを確認しよう。Helperの末尾を推測で決めないこと。
一度だけ試したいなら、メインアプリを完全に終了してから、次のように起動する方法もある。
この起動引数による上書きは、プロセスが終了すると消える。それ以前に書き込んだ永続的な設定は残る。メインアプリに渡した引数がHelperにも自動で渡るとは限らない。
表示言語も英語にしたい場合は、システム設定の「言語と地域」にある「アプリケーション」で指定できる。ターミナルでは、言語の配列であるAppleLanguagesがこれに当たる。無料対象の地域リストは更新されるため、今の結果を今後も変わらない方針と捉えないほうがいい。なお、Claudeが地域を判定する仕組みは、この記事では確認していない。
2026年11月14日確認。参考資料:AppleによるLocaleと言語の解説、起動時のテスト用引数、Mac Mouse Fixの地域を読み取るソースコード、公式の無料対象地域リスト。