Xcodeで使うためにTagLib1.11.1のframeworkを作成・導入する方法

広告

以前に、TagLibをSwiftで使うためのframeworkを作る方法を記載致しましたが、1.11.1だとうまくコンパイルできなかったので、試行錯誤してみました。


どのような事象が発生するのかというと、同じようにコンパイルすると、frameworkが作られません。
taglib.aができあがり終了します。


そこでググった結果、まず「BUILD_SHARED_LIBS=ON」をcmake オプションに付ければ良いというのがあったのでやってみました。
確かに、frameworkは作られるのですが、それでアプリを実行すると、dylibが見つからないエラーが表示され落ちます。


そこでさらにググった結果、こちらの記事が見つかりました。
この記事を読んでいくと、詳細なファイル変更方法がこちらに載っているので実行してみました。
しかし、同様にアプリが落ちて起動できません。


最終的にエラー内容を見て推測した結果、以下の方法でうまくいくようになりました。


  1. Taglib1.11.1をダウンロードし、解凍
  2. こちらに記載してあるように、CMakeLists.txtとConfigureChecks.cmakeのみ変更
  3. 以下のオプションでcmakeする
    cmake -DCMAKE_BUILD_TYPE=Release \
          -DBUILD_FRAMEWORK=ON \
          -DCMAKE_C_COMPILER=/usr/bin/gcc \
          -DCMAKE_CXX_COMPILER=/usr/bin/c++ \
          -DCMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/ \
          -DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 \
          -DCMAKE_OSX_ARCHITECTURES="x86_64"
    ※ SYSROOTとDEPLOYMENT_TARGETは環境に合わせて設定
  4. make
  5. sudo make install
  6. /LIbrary/Frameworks/にtag_frameworkとtag_c.frameworkができあがるので、tag_frameworkをどこかに移動する
  7. terminalでコピーしたtag.frameworkがある場所に移動する
  8. 以下のコマンドを実行する。
    sudo install_name_tool -id @rpath/tag.framework/Versions/1.17.0/tag tag.framework/Versions/1.17.0/tag
  9. XcodeのEmbedded Binariesへ追加する

これで無事使えるようになりました。



%E8%A9%B3%E8%A7%A3Swift+%E7%AC%AC3%E7%89%88