2012-06-15 2 views
35

Я использую рабочее пространство, где у меня есть основной проект приложения, а затем проект статической библиотеки, который используется главным приложением. Я хочу, чтобы проект статической библиотеки выплевывал libX.a в главную директорию проекта приложения, потому что я хочу подтолкнуть этот libX.a к моему репозиту Git.Как изменить выходной каталог для цели

Изменение настроек пути сборки для статического проекта lib должно быть перенесено на собственное git-репо, чтобы другим не приходилось иметь дело с этим изменением снова и снова.

Я попытался изменить «Путь сборки продуктов» на «$ (SRCROOT) /../ SharedData» для цели mt static lib, но это не имеет никакого эффекта.

Спасибо!

ответ

35
  1. В меню Файл -> Настройки проекта.

  2. Нажмите кнопку «Дополнительно» в разделе «Производные данные». В разделе build выберите местоположение и выберите каталог вывода. Это будет изменить переменную $ (BUILD_DIR) на все, что вы установили в этом поле.

  3. Нажмите, чтобы перейти к целевым настройкам. В разделе «Местоположение сборки» вы можете указать, где цели выводятся на основе этого $ (BUILD_DIR) макроса.

+2

Это, как представляется, параметр XCode, а не то, что вы можете проверить в какой-либо CVS. – noobular

+0

Это не работает, если мой проект «A», и я хочу, чтобы исполняемый файл исполнялся в 'A/release'; Я могу только поставить его под 'A/release/Release'. Любые подсказки? –

30

Обновленные инструкции по приближению Xcode 5 6.3.

1. Go to File -> Project settings 
    2. Click the Advanced button 
    3. Select "Custom" and select "Relative to Workspace" in the pull down 
    4. click done, done 

И все готово!

+5

Файл -> Параметры рабочей области ... –

+2

Это не будет работать для больших проектов, так как эта конфигурация сохраняется в пользовательской папке xcuserdatad. – Pavel

+1

Изменения в настройках рабочей области не отображаются в git – hariszaman

18

Вот решение, которое вы можете проверить в источнике управления, и которое я проверил, работает с Xcode 6.2.

  1. Добавить файл .xcconfig к вашему проекту - см this SO question for details.
  2. В файле .xcconfig задайте переменные стандартной среды Xcode PROJECT_TEMP_DIR, CONFIGURATION_BUILD_DIR и BUILT_PRODUCTS_DIR на то, где вы хотите, чтобы файлы заводиться.

Reading от Apple xcconfig format reference, казалось бы, просто переопределение OBJROOT и SYMROOT в файле .xcconfig будет делать трюк - но в моем тестировании на Xcode 6.2, изменяя их не имеет никакого эффекта. Вы должны изменить эти три конкретные переменные среды, перечисленные выше.

Это то, что я кладу в 6,2 .xcconfig файл Xcode так промежуточные файлы и исполняемые файлы идут в их «традиционных» местах:

// Intermediate build files go here 
PROJECT_TEMP_DIR = $(SRCROOT)/build/$(PROJECT_NAME).build 

// Build-related files for the active build configuration go here 
CONFIGURATION_BUILD_DIR = $(SRCROOT)/build/$CONFIGURATION 

// The final product executables and other build products go here 
BUILT_PRODUCTS_DIR = $(SRCROOT)/build/$CONFIGURATION 
+2

Это единственный правильный ответ! – Pavel

+0

В качестве примечания, я уверен, что [это ошибка в XCode] (https://forums.developer.apple.com/message/234817/), где OBJROOT и SYMROOT оцениваются до того, как параметры из файлов проекта даже рассмотрены , – Pavel

2

Если вы хотите изменить путь сборки вашего проекта вы можете изменить используя следующие шаги.

1) Выберите «Xcode»> «Настройки» и нажмите «Расположение».

2) Нажмите кнопку «Дополнительно» для параметра «Производные данные».

3) Выберите местоположение сборки из доступных параметров и нажмите «Готово».

ex. если вы выбираете 'Custom' из сборки Location варианта вашей сборка будет генерировать в '/ Users/XYZ/Desktop/Build/Products' Расположения

+0

Это изменяет путь сборки для всех проектов. –

0

В Xcode 8.x я поставил каталог derivedData с командой line в файле .sh, который создает проект. Разработчики могут создавать свои пользовательские каталоги (предпочтение по умолчанию Xcode), а официальная сборка создает сборку в традиционной области:

SCRIPT_DIR = "$ (cd" $ (dirname "$ {BASH_SOURCE [0]}") " & & PWD)»

xcodebuild -workspace 'мой project.xcworkspace' -схема 'мой проект' -конфигурация Release -derivedDataPath '$ SCRIPT_DIR/сборки'

0

Согласно @ GP-кодером, сценарий будет следуя за xcode 9. * Следуйте за порядком, указанным на картинке

enter image description hereenter image description hereenter image description here

И ли Совершенно

Вот и все, спасибо

+0

Или вы можете выбрать Legacy, а затем указать для каждого целевого параметра, задав путь Build Products Path (в настройках сборки вашего собственного объекта) относительно вашей директории проекта. – ideawu

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