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" (отмечен) на экране "Редактировать схему" для схемы, которая продолжает меняться.