ビルドフェーズでフレームワークをコピー
久しぶりにcocoaアプリケーションを作ろうとして、フレームワークまわりでつまづいてしまいました。
自作(もしくは他人作)のフレームワークを利用しようとした時、xcodeのFrameworksに入れるだけだと、
- dyld: Library not loaded: @executable_path/../Frameworks
といったエラーが出て実行できません。おそらく誰でも経験したことあるのではないでしょうか。
これはビルドするときにフレームワークをアプリケーション内にコピーしなければいけないからです。ビルドフェーズにこの作業を加えてあげなければいけません。
以下、そのやり方。
- ターゲットでビルドするアプリケーションを右クリック
- 追加->新規ビルドフェーズ->新規コピーファイル
- デスティネーションをフレームワークに変更してウインドウを閉じる
- ビルドフェーズの一番下に「ファイルをコピー」というものが出来てるので、これを「フレームワークをコピー」に名称変更。自分が分かりやすいものであれば何でも大丈夫です。
こうしておけば、実行時にエラーが出ることがなくなります。