2016-09-28 3 views
2

** ВНУТРЕННЯЯ ОШИБКА: Uncaught исключение **Построить вопрос создания для iOS10 по Xcode8 на Дженкинс

Uncaught Исключение: Загруженный com.apple.CoreSimulator.CoreSimulatorService работа не соответствует нашим ожиданиям:

Stack: 0 0x00007fff95278aca __exceptionPreprocess (в CoreFoundation) 1 0x00007fff95c8273c objc_exception_throw (в libobjc.A.dylib) 2 0x00007fff952788ba + [NSException Raise: формат: аргументы:] (в CoreFoundation) 3 0x00007fff924d288c - [NSAssertionHandler handleFailureInMethod: объект: файл: LINENUMBER : description:] (in Foundation)

ответ

1

Эта ошибка обычно вызвана обновлением или переключением версии Xcode при запуске com.apple.CoreSimulator.CoreSimulatorService. Xcode (включая xcodebuild) использует Simulator для обработки файлов XIB/Storyboard при создании для iOS/tvOS/watchOS, поэтому, даже если вы не запустите Simulator.app, только запуск сборки может запустить CoreSimulator.

Эта проверка гарантирует, что служба XPC, запущенная с помощью запуска, соответствует библиотеке. В вашем случае он не работает, указывая, что startd начал старую версию CoreSimulator.

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

Если вы пытаетесь переключаться между версиями Xcode в одной и той же сборке, вам необходимо вставить скрипт в sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService 2> /dev/null после вашего xcode-select. Убедитесь, что Xcode, Simulator.app и Console.app закрыты или их попытки создать соединение XPC просто заставят launchd немедленно запустить задание.

+0

Пользователю не нужно выходить из системы при переключении версий Xcode. Запуск Xcode, Simulator, xcodebuild и т. Д. Приведет к тому, что новый процесс выгрузит старый CoreSimulatorService, если он не соответствует и не загружает его. Это сообщение об ошибке указывает, что даже после этого задание не совпало. Это обычно указывает на то, что в процессе запуска есть гонка. Одновременно запускается несколько разных X-кодов. Это не поддерживаемая конфигурация. –

2

Эта проблема указывает, что загруженное задание CoreSimulatorService не соответствует ожиданиям. При запуске любого процесса, который использует симулятор (Xcode, Simulator, simctl, xcodebuild, Instruments и т. Д.), Система сначала проверяет, является ли загруженный CoreSimulatorService правильным для этой версии Xcode. Если это не так, он выгружает задание и загружает правильный. После этого он переопределяет соединение и выдаст эту ошибку, если соединение все еще не соответствует ожиданиям.

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

+0

'Это обычно происходит, когда одна и та же учетная запись пользователя использует несколько версий Xcode одновременно.« Спасибо, что это был намек на решение моей проблемы. На нашем CI-сервере у нас есть несколько версий XCode. 'Open' открывал Xcode 8, хотя мы пытались построить с Xcode 7. Я изменил его на' open -a /Applications/Xcode_$XCODE_VERSION.app/ "platform/ios/App.xcodeproj", поэтому конкретная версия Xcode создает приложение. – mles

Смежные вопросы