Xcode 5 и общие схемы

У меня есть раздражающая проблема с Xcode 5 и разделяемыми схемами.

В моей команде (нам всего две, но эй, это еще команда), мы используем некоторые схемы для запуска приложения с различными конфигурациями (Debug, QA, Release,...)

Ну, теперь Xcode 5 меняет настройку BlueprintIdentifier каждой схемы, исходя из того, что я могу понять, на машине разработчика. И, конечно, изменение получило замечание bit git, и мы либо должны их проверить, либо зафиксировать. Оба решения не имеют смысла...

Любая идея о том, как ее исправить? Я сделал поиск в Google, но ничего не нашел для Xcode 5...

Я не хочу отказываться от этих общих конфигураций! Решение, которое я мог придумать, чтобы отслеживать отслеживаемые общие схемы, не удалось их удалить, скопировать в выделенную тестовую папку, а затем использовать стратегию, подобную той, которая использовалась для Pods, чтобы скопировать эти схемы локально, где Xcode может испортить их без нашего внимания. Что-то вроде schemes script, который читает файл Schemefile, в котором перечислены схемы для копирования из папки Schemes/ и Schemefile.lock, которые обновляются каждый раз, когда есть какое-то изменение и которое считывается с помощью сборки Xcode чтобы убедиться, что все обновлено.

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

Приветствия:)

Ответ 1

Во-первых, я предполагаю, что вы используете CocoaPods, потому что вы упомянули об этом в своем вопросе.

У меня была эта проблема некоторое время, и совсем недавно я обнаружил, что некоторые из моих общих схем не изменяют их BlueprintIdentifier с другими. При исследовании я заметил, что нетронутые схемы имели цель Pods в builds, которая отсутствовала, так как в ней был указан красный цвет: Pods (missing). Моя теория заключается в том, что pod install и различные события Xcode (т.е. Сбой, запуск и т.д.) Заставляют схему изменять ее BlueprintIdentifier, потому что они ссылались на цель Pod в настройках построения схемы.

Я удалил ссылку Pods во всех моих схемах и с тех пор не смог воспроизвести изменение BlueprintIdentifier. Моя цель, которая зависит от Pods, имеет libPods.a, указанный в Link Binary With Libraries в Build Phases, и устанавливается в требуемую, поэтому она все еще компилируется перед основной целью.

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

Ответ 2

Ответ на

@Wes специально не исправил эту проблему для меня, но это привело меня в нужное место. Решение для меня состояло в том, чтобы включить "Найти неявные зависимости" от "off" (непроверенный) до "on" (отмечен) на экране "Редактировать схему" для схемы, которая продолжает меняться.