Rhythm & Biology

Engineering, Science, et al.

ビルドフェーズでフレームワークをコピー

久しぶりにcocoaアプリケーションを作ろうとして、フレームワークまわりでつまづいてしまいました。
自作(もしくは他人作)のフレームワークを利用しようとした時、xcodeのFrameworksに入れるだけだと、

  • dyld: Library not loaded: @executable_path/../Frameworks

といったエラーが出て実行できません。おそらく誰でも経験したことあるのではないでしょうか。

これはビルドするときにフレームワークをアプリケーション内にコピーしなければいけないからです。ビルドフェーズにこの作業を加えてあげなければいけません。


以下、そのやり方。

  1. ターゲットでビルドするアプリケーションを右クリック
  2. 追加->新規ビルドフェーズ->新規コピーファイル
  3. デスティネーションをフレームワークに変更してウインドウを閉じる
  4. ビルドフェーズの一番下に「ファイルをコピー」というものが出来てるので、これを「フレームワークをコピー」に名称変更。自分が分かりやすいものであれば何でも大丈夫です。


こうしておけば、実行時にエラーが出ることがなくなります。