Xcode 4 - сборка выходного каталога

У меня проблемы с настройкой / поиском моих выходных файлов в Xcode4 (бета 5). Они размещены где-то в ~/Library/Developer/ugly_path/.... Я даже не могу выбрать «Показать в поисковике» на своих товарах. То же самое для простого проекта C, инструмента Foundation и даже пакета Cocoa. Отладка работает нормально.

Не могли бы вы указать мне, где и как создавать / создавать выходные каталоги? (Я знаю, это звучит глупо, я кодировал в Xcode3 несколько месяцев, но не могу понять этого в бета-версии Xcode4).

Большое спасибо.


person kubbing    schedule 20.11.2010    source источник


Ответы (11)


В меню Xcode вверху нажмите «Настройки», выберите вкладку «Местоположение», посмотрите на параметр «Местоположение сборки».

У вас есть 2 варианта:

  1. Поместите продукты сборки в место производных данных (рекомендуется)
  2. Размещайте строительные продукты в местах, указанных целями.

Обновление: в xcode 4.6.2 вам нужно щелкнуть расширенную кнопку справа под текстовым полем производных данных. Место сборки выберите устаревшее.

person the Reverend    schedule 26.11.2010
comment
Этот ответ объясняет, почему было внесено это изменение: stackoverflow.com/questions/5331270/ - person toofah; 26.03.2011
comment
Гордый участник, что вы имеете в виду, что их нет в Xcode 5? Они находятся в настройках - ›Местоположения -› Производные данные - ›Дополнительно. - person Richard Venable; 16.12.2013
comment
Хорошо, моя сборка попадает в папку .../XCode/DerivedData/, достаточно просто. За исключением того, что подпапки кажутся AppName-asdflkjqwergoobledygook. Поскольку я строю из сценария, я хотел бы на самом деле найти сборку (чтобы я мог упаковать ее и отправить через TestFlight :) Как мне определить, какой из многих MyAppName-xxxx-s является правильный? Спасибо! - person Olie; 02.10.2014
comment
@Olie Вы также можете изменить местоположение производных данных на путь по вашему выбору - person Gerard; 22.10.2014
comment
@ Джерард: Я мог бы, но я не хочу этого делать. Я проверяю исходники из репо, затем создаю через командную строку и хочу знать, куда делась сборка. Для моего сценария сборки было бы неприемлемо изменять проект каким-либо образом (например, путем изменения настроек проекта). - person Olie; 22.10.2014

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

xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \
           -scheme 'SCHEME_NAME' \
           -configuration 'Release' \
           -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY'
person Igor    schedule 06.05.2012
comment
Чтобы мои сценарии sh работали, мне нужно было удалить одинарные кавычки и написать просто CONFIGURATION_BUILD_DIR = / Users / ... - person Stanislav Pankevich; 31.10.2013
comment
@occulus, вы абсолютно правы, так как это не удастся создать цель тестирования после сборки проекта, я думаю, если вы просто создаете ее, МОЖЕТ быть в порядке, но лучше используйте абсолютные пути! - person Mostafa Berg; 02.06.2014
comment
Если кто-то еще пытается решить аналогичную проблему, я убедил XCode 6.x разместить связанный двоичный файл точно там, где он был нужен, используя эту комбинацию: /Users/moi/src/mozbuilds/xul3604/$(CONFIGURATION)/dist/bin - person J Evans; 30.03.2015

В Xcode 5: меню Xcode> элемент Настройки ...> вкладка Местоположения> вложенная вкладка Местоположения> < strong> кнопка "Дополнительно ..."> параметр Пользовательский.

Затем выберите, например, Относительно рабочей области.

person Grumdrig    schedule 21.11.2013
comment
Доживите до ста лет, крепкий и здоровый сэр. Спасибо! - person WhozCraig; 01.05.2014

Если для параметра "Местоположение сборки Xcode 4" установлено значение "Поместить продукты сборки в местоположение производных данных (рекомендуется), он должен находиться в ~ / Library / Developer / Xcode / DerivedData. В этом каталоге будет ваш проект в качестве каталога, к названию проекта будет добавлено несколько сгенерированных букв, так что смотрите внимательно.

person bxiong    schedule 29.12.2010

Сохраните производные данные, но используйте DSTROOT для указания места назначения.

Используйте DEPLOYMENT_LOCATION для принудительного развертывания.

Используйте недокументированный DWARF_DSYM_FOLDER_PATH, чтобы скопировать dSYM.

Это позволяет вам использовать местоположение данных, производных от xcodebuild, и вам не нужно делать дурацкие вещи, чтобы найти приложение.

xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build
person Gabriel    schedule 25.05.2012

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

Я использую это, чтобы проанализировать свои пакеты iOS .app перед их установкой, чтобы убедиться, что в них нет посторонних файлов.

person radven    schedule 07.12.2010
comment
И где мне найти этот журнал сборки ?? Поиск журнала сборки в справке Xcode возвращает 0 результатов. - person devios1; 28.03.2013
comment
Нм, нашел Log Navigator, который выглядит как речевой пузырь. - person devios1; 28.03.2013

Для тех, кто хочет найти каталог сборки из сценария, но не хочет его изменять, выполните следующую команду, чтобы получить список всех параметров сборки, которые указывают на папку в DerivedData:

xcodebuild -showBuildSettings | grep DerivedData

Если вы запускаете настраиваемые цели и схемы, также поместите их туда:

xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData

Посмотрите на вывод, чтобы найти нужный вывод настройки, а затем:

xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//'

Последняя часть обрезает строку по знаку равенства, а затем обрезает пробелы в начале.

person Berend Klein Haneveld    schedule 10.11.2014

Если вы используете новые рабочие области Xcode4, вы можете изменить Местоположение производных данных в Файл -> Настройки рабочего пространства ...

person DaGaMs    schedule 03.01.2013

Вы можете настроить выходной каталог с помощью переменной среды CONFIGURATION_BUILD_DIR.

Источник: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/0-Introduction/introduction.html#//apple_ref/doc/uid/TP40003931-CH1-SW1

person Heath Borders    schedule 31.08.2011
comment
нет, это не связано с производным местоположением / устаревшим (для каждой цели) поведением местоположения - person Gregory Pakosz; 13.03.2012
comment
Да, это. Это работает в любом случае. Из документации: Путь к каталогу. Определяет каталог, в который помещаются все файлы, связанные со сборкой, для активной конфигурации сборки. - person Heath Borders; 13.03.2012
comment
Неа. не с xcode4, это зависит от настройки Xcode > Preferences > Locations > Derived data, как описано в ответе с наибольшим количеством голосов. + документ, на который вы ссылаетесь, последний раз обновлялся в 2010 г. - person Gregory Pakosz; 13.03.2012
comment
Я фактически использовал этот параметр для настройки каталога сборки с xcode4 из xcodebuild. Попробуйте. - person Heath Borders; 14.03.2012
comment
ну, я пробовал с Xcode 4.3.1 (из среды IDE), и без изменения глобальной настройки продукты создаются где-то в ~/Library/Developer/Xcode/DerivedData/, а не внутри каталога, который я указываю с помощью CONFIGURATION_BUILD_DIR. Если я хочу, чтобы CONFIGURATION_BUILD_DIR был удостоен чести, мне нужно переключить настройки данных, производных от Xcode, на Legacy. - person Gregory Pakosz; 14.03.2012

Еще одна вещь, которую нужно проверить перед тем, как начать играть с настройками Xcode:

Выберите цель и перейдите в Настройки сборки> Упаковка> Расширение оболочки.

Значение должно быть: приложение.

Если нет, дважды щелкните по нему и введите «приложение» без кавычек.

person hasan    schedule 22.01.2015

Это было так неприятно. Откройте свой проект, нажмите Target, откройте вкладку Build Phases. Проверьте ресурсы набора копий на наличие красных элементов.

person marbleblue    schedule 16.05.2012