Mac で特定プロファイルの Firefox を起動するアプリを作る

もの凄く基本的なことなんだけど、忘れて Google 先生のお世話になることが多いのでメモっておく

コマンドラインからだったら、

open -a Firefox --args -P profileName -no-remote

でOKだが、いちいちコマンドラインから起動するのは面倒なこともあって、自分は Hoge.app のアプリケーションの形で作っておくのが好み。Spotlight から検索して実行もしやすいし。

APP_NAME=FirefoxHoge.app
FIREFOX_PATH=/Applications/Firefox.app

mkdir -p ${APP_NAME}/Contents/{MacOS,Resources}
# FirefoxHoge.app
# └── Contents
#     ├── MacOS
#     └── Resources

cp ${FIREFOX_PATH}/Contents/Resources/firefox.icns ${APP_NAME}/Contents/Resources

vi ${APP_NAME}/Contents/MacOS/firefox.sh # ... 起動シェル

vi ${APP_NAME}/Content/Info.plist # ... プロパティリスト

touch ${APP_NAME} # 最後に touch しておくとキャッシュがクリアされる?

起動シェル

#!/bin/sh
exec ~/opt/FirefoxNightly.app/Content/MacOS/firefox -P nightly -no-remote "$@"

プロパティリスト

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>CFBundleName</key>
	<string>Nightly</string>
	<key>CFBundleExecutable</key>
	<string>firefox.sh</string>
	<key>CFBundleIconFile</key>
	<string>firefox.icns</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleSignature</key>
	<string>???</string>
  <!-- 以下、あってもなくてもOK -->
	<key>CFBundleIdentifier</key><!-- 定めておくと、keyRemap4Macbook で独自のカスタマイズが可能 -->
	<string>org.teramako.firefox.nightly</string>
	<key>CFBundleShortVersionString</key>
	<string>27.0a1</string>
	<key>CFBundleGetInfoString</key>
	<string>Nightly 27.0a1</string>
	<key>CFBundleDisplayName</key>
	<string>Firefox Nightly</string>
</dict>
</plist>