2009-08-06 2 views
23

В чем разница между этими двумя параметрами в раскрывающемся меню «Проект»? Как правило, я только что скорректировал настройки в настройках проекта (который настраивает info.plist, верно?).XCode Изменить настройки проекта или Изменить активный объект

Сегодня мне нужно было изменить название моего проекта. Первоначально я изменил Product_Name в окне Edit Project Settings -> Build. Но это не изменило имя.

Затем я попытался изменить Product_Name из окна Edit Active Target -> Build, и это, казалось, сделало трюк.

Итак, в чем же разница? XCode никогда не перестает путать меня, когда я начинаю думать, что все это выяснилось! Argh !!!

ответ

54

Настройки проекта применяются ко всем целям вашего проекта. Настройки цели применяются только к этой конкретной цели. Вероятно, у вас есть только одна цель, которая может привести к запутыванию двух наборов настроек и избыточности.

Если задание установлено (выделено полужирным шрифтом) как для проекта, так и для цели, целевая настройка отменяет настройку проекта.

Целевые настройки, которые не заданы (не выделены жирным шрифтом), унаследованы от настроек проекта. Параметры проекта, которые не заданы (не выделены полужирным шрифтом), наследуются от настроек по умолчанию Xcode.

Если задан параметр (проект или цель) (выделено жирным шрифтом), и вы хотите наследовать этот параметр, выберите настройку и нажмите «Удалить».

Предлагаю вам использовать целевые настройки. Используйте параметры проекта для более крупных проектов с несколькими целевыми объектами, где вы действительно хотите делиться настройками по целям.

+0

Идеально для меня. Благодаря! –

+0

Хорошо, вот еще одно, что связано: Какая разница между Active Target и активным исполняемым? –

+9

Привет, Эдвард, рад помочь. Если вы удовлетворены моим ответом, можете ли вы пометить его как принятый ответ? Пожалуйста, задайте свой вопрос, как отдельный, новый вопрос. Таким образом, вы получите ответы более высокого качества. –

5

Следует добавить, что свойства, установленные на уровне проекта, не наследуются автоматически из разных конфигураций/целей вашего проекта: для наследования свойств, установленных на уровне проекта, вам необходимо установить значение $(inherited) в тех полях, где вы на самом деле хотят наследовать такие свойства.

+1

Это очень полезный совет. Я на самом деле пытался понять это. Благодаря! – Imran