Ограничить или изменить адреса схемы в Xcode 4?

Обзор и мотивация

Я хотел бы настроить некоторые схемы, которые строятся только для устройства iOS.

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

Желаемое поведение

Desired - only iOS Device

Фактическое поведение

Actual

Что я пробовал

  • Я удалил значение "iphonesimulator" в "Поддерживаемые платформы" в конфигурациях, предназначенных только для устройства:

Configuration Support Platforms

  • В настройках Ad Hoc я отключил шаги запуска и профиля. Я оставил шаг архива

steps

  • Для всех шагов сборки (включая отключенных) я установил конфигурацию сборки в "Ad Hoc", которая ранее была установлена ​​только на iphoneos.

Результаты пока

Я могу выбрать Simulator как пункт назначения в раскрывающемся списке схемы:

Simulator still availabke

Однако, если я запустил схему с назначением Simulator, я получаю ожидаемую, соответствующую ошибку:

The selected run destination is not valid for this action.

Мне было бы гораздо приятнее, и моя команда могла бы просто скрыть эти недопустимые адреса.

Есть ли лучший способ управлять тем, какие адресаты доступны для данной схемы?

Ответы

Ответ 1

Обновленный ответ

Хммм. Это работает для меня с ОДНОЙ целью. Я удалил платформы из поддерживаемых платформ в конфигурации и они исчезли из схемы.

Затем я попытался добавить еще одну конфигурацию, которая позволяет симулятору, и он все еще остается видимым устройством. Затем я продублировал цель и добавил в iphonesimulator... и симулятор появился в схеме для обеих целей.

К сожалению, я считаю, что доступные адресаты представляют собой совокупный список доступных для всех целей. Введите отчет об ошибке: http://bugreporter.apple.com

Другое обновление

АХ! Это похоже на ошибку Xcode с обновлением селектора схем! Я настроил каждую целевую настройку - один, чтобы опустить симулятор, а другой - сохранить, а затем закрыть и снова открыть проект. Волшебно, первая цель имела только назначение устройства iOS, в то время как у другой цели были целевые устройства + имитаторы.

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