Сервер сборки XCode не удался. Устройства, настроенные для тестирования, не найдены
Наш Xcode Build Server не работает и больше не выполняет никаких тестов. Версия 8.3 (8e162)
Это просто не с утверждением:
Проблема с сервисом сборки
Ошибка Устройства, настроенные для тестирования, не найдены.
Когда я выбираю "Fix it", меня просто перенаправляют на "Edit Bot" -> "Devices" в настройках бота. Иногда списки устройств iOS теперь загружаются намного дольше (~15 секунд), чем раньше (сразу).
Итак, когда устройства наконец появляются (если они вообще появляются) и выбраны, появляется следующее сообщение об ошибке:Internal Error Updating Bot, пожалуйста, попробуйте настроить бот снова
Предоставленные здесь решения не были для меня проблемой, так как я вошел в систему с ботом: редактирование ботов xcode не удалось
Кто-нибудь нашел
- причина этого, почему эта ошибка швов внезапно возникает
- решение для этого? Переход на более старую версию xCode, к сожалению, не подходит для меня, как предлагается здесь: https://forums.developer.apple.com/thread/76453 поскольку я уже получил версию, до которой пользователь понизил версию.
Что-то не так с общими схемами или что-то не так, что может привести к проблеме?
Прежде чем снова создать бота, я бы очень хотел исправить бота, сохранить историю сборок и т. Д.
2 ответа
Нашел решение, предоставленное пользователем @juce на github. Ссылка на оригинальный ответ в Apple Developer Forum
Вот ссылка на пост github, в котором рассказывается подробности @juke:
Копия скрипта:
--- deviceClass.js 2017-05-05 07:10:40.000000000 -0700
+++ deviceClass.js.NEW 2017-05-05 07:13:36.000000000 -0700
@@ -12,6 +12,7 @@
dbCoreClass = require('./dbCoreClass.js'),
xcsutil = require('../util/xcsutil.js'),
logger = require('../util/logger.js'),
+ fs = require('fs'),
redisClass = require('./redisClass.js');
/* XCSDeviceClass object */
@@ -141,12 +142,11 @@
query.endkey = [unitTestUUID, {}];
}
- redisClass.getDynamicQuery(req, doc_type, function DEVListRedisGetDynamicQuery(err, docs) {
- if (err) {
- opFailed(err);
- } else if (docs) {
+ var devicesFile = '/Library/Developer/XcodeServer/Logs/xcs_devices.json';
+ fs.readFile(devicesFile, 'utf8', function (err,docs) {
+ if (docs) {
docs = JSON.parse(docs);
- log.info('Found', docs.length, 'devices in Redis.');
+ log.info('Found', docs.length, 'devices in file-system cache.');
opSucceeded(docs);
} else {
log.debug('No devices found in Redis. Falling back to CouchDB.');
@@ -167,9 +167,12 @@
} else {
log.info('Found', docs.length, 'devices in CouchDB.');
- redisClass.setDynamicQuery(req, doc_type, JSON.stringify(docs), function DEVListRedisSetDynamicQuery(err, wasSaved) {
- if (wasSaved) {
- log.debug('Successfully cached devices to Redis.');
+ fs.writeFile(devicesFile, JSON.stringify(docs), 'utf8', function(err) {
+ if (err) {
+ log.debug('Problem saving devices into ' + devicesFile);
+ }
+ else {
+ log.debug('Successfully cached devices to file.');
}
// Even if there's an error (i.e. Redis suddenly went down), we can still continue since
// the next request would be redirected to CouchDB.
Как подать заявку. Загрузите или скопируйте этот скрипт и укажите путь к существующему файлу следующим образом:
[sudo] cd /Library/Developer/XcodeServer/CurrentXcodeSymlink/Contents/Developer/usr/share/xcs/xcsd/classes
patch deviceClass.js /path/to/xcs-tweaks/xcs-devices-patch.diff
Затем перезапустите симулятор и, возможно, перезагрузите компьютер (это был мой случай). Затем проверьте, работает ли он:sudo xcrun xcscontrol --list-simulators
Большое спасибо @juke, кто бы ты ни был:)
Моя проблема с этим состояла в том, что я настроил бота на более раннюю версию Xcode (с установленными только 11.2 симуляторами).
Я обновил версию Xcode на машине, которую я использую для запуска ботов, на которой было установлено только 11,4 симулятора. Изменение симуляторов на эти последние версии исправило это.