Я делаю проект SDL в XCode, и у меня есть папка с названием ресурсов, где хранятся мои изображения. Для моего приложения SDL для доступа к этим изображениям с помощью SDL_LoadBMP папка ресурсов должна находиться в той же папке, что и исполняемый файл. Я не хочу копировать и вставлять мои ресурсы в папку «/ Users / admin / Library / Developer / Xcode / DerivedData / SDL_app-awvygturnguyeqgwpjowmouadbjf / Build / Products / Debug» каждый раз, когда я хочу запустить приложение (я не знаю, почему все случайные символы в ссылке на папку). Я читал первый урок Lazy Foo по SDL: http://lazyfoo.net/SDL_tutorials/lesson01/index2.php и я пытаюсь вывести изображение на экран. Мне не нужно показывать здесь мой код, потому что он точно такой же, как учебник, на который я ссылался, за исключением того, что вместо SDL_LoadBMP («hello.bmp») это SDL_LoadBMP («resources / images / hello.bmp»). Приложение работает, как только я копирую папку ресурсов в каталог продукта. Я собирался показать изображение папки и так далее, но мне не хватало «репутации».
Чтобы удостовериться, что папка будет скопирована, вам нужно добавить папку в ваш проект XCode, а затем создать шаг копирования на ваших этапах сборки. По умолчанию существует фаза копирования для элементов, которые система определяет как ресурсы (файлы .strings, файлы .xib и т. Д.). Однако для дополнительных файлов вам необходимо специально создать фазу копирования.
Сделать это:
Build Phases
табуляцияAdd Build Phase
кнопку и выберите Add Copy Files
Destination
расположение для копии (это «верх» иерархии, вы также можете указать подкаталоги, используя Subpath
поле)Когда вы создаете свой исполняемый файл, файлы будут скопированы по вашему указанию.
Если ваши файлы SDL изменяются вне XCode, вы можете импортировать папку как ссылку на папку, а не как отдельные файлы. Это может быть немного сложно, но это заставляет Xcode копировать текущее содержимое папки, а не только элементы, которые вы добавили в проект. В противном случае, просто импортируйте файлы SDL непосредственно в проект Xcode и управляйте ими индивидуально.
Других решений пока нет …