SIMBL Plugin 開発でデバッガを使う方法

もう2ヶ月くらい前になるかもしれませんが、Xcode関連で調べ物をしていたときに偶然見つけた方法をちょっと弄ったらうまい具合に SIMBL plugin 向けにも動いたよっという話です。
超ニッチな情報ですが、僕は超テンションが上がりましたのでご紹介。

Custom Executable を追加

メニューバーから ”Project” > ”New Custom Executable” をクリック



出てきたウインドウに適当な名前を付けて、プラグインの対象となるアプリを選択。


Run Script Build Phase を追加

メニューバーから ”Project” > ”New Build Phase” > ”New Run Script Build Phase” をクリック



出てきたウインドウに以下のスクリプトをコピペ。


# clean up any previous products/symbolic links in the SIMBL Plugins folder
if [ -a "${USER_LIBRARY_DIR}/Application Support/SIMBL/Plugins/${FULL_PRODUCT_NAME}" ]; then
  rm -Rf "${USER_LIBRARY_DIR}/Application Support/SIMBL/Plugins/${FULL_PRODUCT_NAME}"
fi

# Depending on the build configuration, either copy or link to the most recent product
if [ "${CONFIGURATION}" == "Debug" ]; then
  # if we're debugging, add a symbolic link to the plug-in
  ln -sf "${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}" \
    "${USER_LIBRARY_DIR}/Application Support/SIMBL/Plugins/${FULL_PRODUCT_NAME}"
elif [ "${CONFIGURATION}" == "Release" ]; then
  # if we're compiling for release, just copy the plugin to the SIMBL Plugins folder
  cp -Rfv "${TARGET_BUILD_DIR}/${FULL_PRODUCT_NAME}" \
    "${USER_LIBRARY_DIR}/Application Support/SIMBL/Plugins/${FULL_PRODUCT_NAME}"
fi

Build設定を変更

僕の環境では弄る必要がありませんでしたが、
Target の コンテキストメニュー ”Get Info” > ”Build” タブ で 各項目を変更。

  • "Strip Debug Symbols During Copy" ・・・ Off 
  • "Generate Debug Symbols" ・・・ On
  • ”Optimization level” ・・・ None


おしまい

これでDebugビルド時にBreakePointが有効になって普通のCocoaアプリやiPhoneアプリみたいにデバッグができるようになると思います。実は今までこの方法を知らなかったので地道にNSLog & Console.app でやってました。


問題点として複数のプラグインを平行して作ったりしてると別プラグインのブレイクポイントで止まる事がありました。
あとデバッグを終わらせるとSafariも終了します。


でも、この方法でだいぶ開発が楽になりそうです。




Snow Leopard では SIMBL が使えなくなるそうですが、また誰かが同等な手段で穴を開けてくれると期待しています。