openFrameworksで開発したアプリを配布する際のTips: bin/dataを.appに含める方法

背景

openFrameworks(以下oF)で開発したアプリケーションを配布する際に、 使用するカメラなどの設定をユーザが設定できるようにしたかった。 そのために、ofxXmlSettingsを使ってロードする.xmlファイルを.appに含めたかった。

検証環境

  • of_v0.11.2_osx_release
  • Xcode 14.3

手順

dataのファイルを.appに含める

Run Scriptに追加以下のスクリプトを追加する。 これで、 bin/data 以下のファイルが $TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources にコピーされる。

cp -r bin/data "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources";

Run Scriptでコピーしたファイルを参照するようにする

次に ofApp::setup() 内で以下の関数を呼び出す。

ofSetDataPathRoot("../Resources/data/");

この関数を呼び出す理由としては、ビルドしたoFの実行ファイルは $TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME に存在しているため、 oFがデータをロードする際に参照するパスを $TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/../Resources/data/ とすることで、 Run Scriptでコピーしたファイルが参照されるように設定している。

参考文献


openFrameworksで開発したアプリを配布する際のTips: bin/dataを.appに含める方法

By Katsuya Endoh, 2023-08-16