05
Сравнительная проверка одного проекта
Обе версии нужно сравнивать на одном commit, с одинаковыми переменными окружения и одинаковым набором зависимостей. Если Xcode 27 Beta проверяет новый API, это не означает, что производственная сборка должна использовать тот же SDK.
Разделите проверку на четыре уровня.
Восстановление зависимостей
Сначала выполните чистое восстановление:
bundle install
bundle exec pod install
Если проект использует только Swift Package Manager, зафиксируйте состояние пакетов и не разрешайте автоматическое обновление во время сравнения. Ошибка на этом этапе относится к зависимости или менеджеру пакетов, а не к компилятору.
Debug и unit tests
Для Xcode 26.6 проверьте базовую сборку и тесты. Для Xcode 27 Beta повторите те же действия отдельным каталогом DerivedData. Записывайте:
- предупреждения компилятора;
- ошибки Swift или Objective-C;
- проблемы с макросами и плагинами;
- сбои Simulator;
- различия в поведении API iOS 27.
Release Archive
Затем создайте Archive в обеих версиях, но с разными именами архивов:
ARCHIVE_PATH=/tmp/PROJECT_PLACEHOLDER-xcode26.xcarchive
и
ARCHIVE_PATH=/tmp/PROJECT_PLACEHOLDER-xcode27beta.xcarchive
На этом этапе отдельно проверяются компиляция, экспорт, provisioning profile и подпись. Успешный Debug не доказывает, что Release Archive будет принят системой загрузки.
Upload и обработка
Производственный архив отправляйте через стабильную цепочку. После загрузки проверьте не только факт передачи файла, но и появление сборки, обработку, предупреждения, экспорт compliance и доступность версии в App Store Connect. Apple указывает, что загруженная сборка должна пройти обработку, прежде чем появится в интерфейсе. Инструкция Apple по загрузке сборок описывает этот этап отдельно.
| Этап |
Xcode 26.6 |
Xcode 27 Beta |
Что считать результатом |
| Восстановление зависимостей |
Обязательно |
Отдельно |
Нет скрытого обновления пакетов |
| Debug |
Производственная база |
Проверка iOS 27 |
Проект запускается и тесты проходят |
| Release Archive |
Основной релизный путь |
Сравнительный эксперимент |
Архив создан без подмены сертификата |
| Подпись |
Обязательная проверка |
Проверка совместимости |
Подписанный архив соответствует Team ID |
| Upload |
Производственная отправка |
TestFlight-проверка |
Сборка обработана App Store Connect |
| Откат |
Должен быть готов |
Не влияет на релиз |
Старый путь запускается без переустановки |