Куда деваются файлы ресурсов при разработке приложений для Mac?

Я новичок в разработке приложений для Mac OSX через Delphi (Берлин) и не знаю, где разместить файлы ресурсов. В Windows я могу написать ImageControl1.LoadFromFile('aFile.png'); и знать, что это ссылка на каталог, в котором находится мой исполняемый файл. Или я могу сделать что-то вроде make и указать путь к отдельному каталогу, в который я помещаю ресурсы.

Но я не знаю, где разместить ресурсы или как работают их пути при разработке на машине Windows для приложения, которое будет скомпилировано и запущено на Mac. Я попытался поместить файл изображения в подкаталог OSX проекта Delphi, а также ввести полный путь, то есть LoadFromFile ('путь / идет / здесь'). Я также пробовал использовать прямую и обратную косую черту в выражении имени пути. В каждом случае я получал ошибку (при компиляции для Mac, а не для Windows). Я вроде как думаю, что файлы должны быть где-то на Mac ... но я потерялся.

Я надеюсь, что кто-то может сказать мне, где разместить такие файлы ресурсов или как правильно ссылаться на них при разработке приложений Mac на машине с Windows (или, в качестве альтернативы, пару хороших справочников, которые объяснят мне это. .. Я поискал в сети, но не нашел ответа).


person Al C    schedule 15.01.2018    source источник
comment
Я считаю, что вы можете встраивать ресурсы в приложение на OS-X так же, как работает Windows - метод, который, я думаю, должен быть одинаковым для них обоих. Просто загляните во встроенные ресурсы, в частности, используя файл rc.   -  person Jerry Dodge    schedule 15.01.2018
comment
знаю, что это ссылка на каталог, в котором находится мой исполняемый файл. Эээ, неправильно. Это относительно текущего каталога. Это может быть каталог, в котором находится исполняемый файл, а может и нет. Так что это первое, что нужно исправить. Используйте абсолютный путь. Или встроенный ресурс.   -  person David Heffernan    schedule 15.01.2018
comment
@DavidHeffernan - Я оставлю пост как есть, но ваша точка зрения хорошо принята. Спасибо.   -  person Al C    schedule 15.01.2018
comment
FWIW, на Mac ресурсы расположены в ветке ресурсов (подкаталоге) файла .app, который на самом деле похож на каталог с ветвями для ресурсов и один для исполняемого файла. AFAIK, Delphi знает это (в настоящее время не может проверить, мой Mac находится в ремонте) и создает правильную структуру .app. ISTM, что вы должны делать то же самое, что и в Windows, т.е. просто добавить ресурс в проект, и Delphi сделает свое дело. Как это происходит, не имеет значения.   -  person Rudy Velthuis    schedule 16.01.2018


Ответы (1)


Здесь есть некоторая информация о структуре пакетов приложений macOS:

https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW19

В диспетчере развертывания Delphi ресурсы могут быть развернуты по удаленному пути:

Содержание \ Ресурсы \

И его вложенные папки. Следующий код должен вернуть корень пакета .app:

NSStrToStr(TNSBundle.Wrap(TNSBundle.OCClass.mainBundle).bundlePath)

Добавьте / Contents / Resources (и соответствующие подпапки) к этому пути, и вы можете загружать развернутые файлы оттуда.

person Dave Nottage    schedule 16.01.2018