Как связать приложение openframeworks в xcode (относительное связывание ресурсов?) - PullRequest
3 голосов
/ 03 февраля 2011

Попытка заставить openframeworks создать мое приложение, чтобы я мог открыть его из любого места, и оно загрузит необходимые изображения из папки ресурсов приложения.

Я полагаю, это относительная связь?

Я делал это раньше, на старом xcode и oF 61.

Чтобы сделать это, я перетащил необходимые изображения в файл проекта слева и добавил его в исполняемую цель, находясь в «фазе сборки» -> «Копировать файлы».

Пробовал всевозможные методы, SetDataPathRoot (), который решил проблему в прошлый раз, не работает для меня на этот раз.

Любые идеи / помощь будут оценены!

Спасибо

Ответы [ 3 ]

8 голосов
/ 18 июня 2013

Сначала вы должны указать xCode скопировать каталог / bin / data в ваш пакет приложений, добавив этап сборки:

1. Click on your project in the Project Navigator
2. Select "Build Phases"
3. Toggle open the "Run Script" section and paste in the following:
cp -r bin/data "$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/Resources";

Затем сообщите своему приложению, где найти папку данных относительно себя в

Внутри метода настройки вашего приложения oF:

ofSetDataPathRoot("../Resources/data/");
0 голосов
/ 11 сентября 2011

oF теперь устанавливает корневой путь данных , а делает внутренние вызовы по умолчанию ofToDataPath().Какую версию ты используешь?

Заглянули ли вы в содержимое пакета продукта, чтобы убедиться, что ваши ресурсы получают копии на правильном этапе сборки?

0 голосов
/ 11 июня 2011

ofSetDataPathRoot() должен решить эту проблему.Возможно, вы неправильно устанавливаете корневой путь замены?

Попробуйте сами вызвать метод toDataPath () для строкового пути и распечатать результат, затем используйте Terminal и cd в пакете .app, чтобы проверить правильность пути.Пути выражаются относительно расположения фактического исполняемого файла в пакете .app, поэтому, если исполняемый файл находится в myApp.app/Contents/MacOS/myApp, а файлы данных - в myApp.app/Contents/Resources, тогда ofToDataPath( "texture.png" ) должен возвращать что-то вроде ../Resources/texture.png.

Вы можете дважды проверить текущий рабочий каталог (myApp.app/Contents/MacOS в моем примере), вызвав getcwd(), откройте терминал и введите man getcwd для получения дополнительной информации об этом.

...