2013-10-03 2 views
4

enter image description hereenter image description hereфаза создания факсимильной копии xcode - что означают пункты назначения?

XCode docs для этого не объяснить, где каждый из путей Destination сопоставляется на диске, относительно моего пакета прикладных программ.

Если я использую это приложение в качестве примера, может ли кто-нибудь дать канонический ответ, где каждый будет помещать файлы относительно этой структуры каталогов?

enter image description here

+0

Является ли это каталогом * app bundle * (к чему относится конфигурация * Copy Files *)? – trojanfoe

+0

К сожалению, это подкаталог 6.1 каталога Users/$ User/Library/Application Support/iPhoneSimulator ... так вот что XCode устанавливает для симулятора. 'Viewer' - это приложение, если у меня есть правильная терминология. –

+0

Я не верю, что они одно и то же; Xcode хочет знать, где в комплекте приложения вы хотите скопировать файл, и то, что вы показываете, является папкой контейнера приложения. Однако я не уверен на 100%. – trojanfoe

ответ

5

приложение расслоение в вашем примере Viewer. Это не файл; это каталог. Если вы нажмете на него и «Показать содержимое пакета», вы увидите остальную часть.

Каталог продуктов - это каталог, в который записывается Viewer. Вы не можете писать в этот каталог в iOS.

Для iOS, Wrapper - это каталог верхнего уровня в пределах Viewer.

Для iOS исполняемый файл - это тот же каталог, что и Wrapper.

Для iOS ресурсы попадают либо в каталог Wrapper, либо в локализационные каталоги (Base.lproj и т. Д.), Если ресурс локализован.

Другие каталоги не имеют смысла для iOS.

Вы все равно должны использовать каталоги логически. Используйте «Исполняемый файл», чтобы означать «каталог, в котором живет мой исполняемый файл». Не предполагайте, что дерево каталогов выложено определенным образом внутри.

Что касается комментариев, что вам необходимо знать путь доступа к файлу, вам это не нужно (и не следует пытаться). Вы должны использовать [NSBundle pathForResource:ofType:], чтобы найти файлы.

+0

Это приложение на C++, использующее кросс-платформенные библиотеки, которые используют обычные пути и думают с точки зрения каталогов и файлов. Я добавлю тег 'C++', так как не понял, что в чистом iOS-устройстве это было по-другому. –

+0

Вы все равно должны использовать комплект, чтобы найти путь для вас. Не пытайтесь построить его на основе предположений о дереве. Вы можете использовать 'NSBundle' в коде ObjC и передать полученную строку, или вы можете использовать' CFBundleCopyResourceURL' в чистом коде C или C++. –

+0

Кросс-платформенные библиотеки часто не дают вам эту роскошь (я использую Ogre3D здесь), в моем случае я использую API-интерфейсы iOS для получения абсолютного пути к набору и должен делать все по отношению к этому. Он отлично работает (прикоснитесь к дереву!), существуют ли официальные руководящие принципы против этого? –

Смежные вопросы