griffin-stewieの日記

2009-08-02

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

もう2ヶ月くらい前になるかもしれませんが、Xcode関連で調べ物をしていたときに偶然見つけた方法をちょっと弄ったらうまい具合に SIMBL plugin 向けにも動いたよっという話です。

ニッチ情報ですが、僕は超テンションが上がりましたのでご紹介。


Custom Executable を追加

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


f:id:griffin-stewie:20090802190917p:image:w400


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


f:id:griffin-stewie:20090802191300p:image:w400


Run Script Build Phase を追加

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


f:id:griffin-stewie:20090802191447p:image:w400


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


f:id:griffin-stewie:20090802191559p:image:w400

# 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

f:id:griffin-stewie:20090802191649p:image:w400


おしまい

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


問題点として複数のプラグインを平行して作ったりしてると別プラグインブレイクポイントで止まる事がありました。

あとデバッグを終わらせるとSafariも終了します。


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




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


参考URL

Technical Q&A QA1500: Debugging a WebKit Plug-in in Xcode

http://developer.apple.com/qa/qa2006/qa1500.html#//apple_ref/doc/uid/DTS10004165

トラックバック - http://d.hatena.ne.jp/griffin-stewie/20090802/p1
プロフィール

griffin-stewie

griffin-stewie

遂にプログラマの端くれに。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には一切関係ありません。