Сервер сборки XCode не удался. Устройства, настроенные для тестирования, не найдены

Наш Xcode Build Server не работает и больше не выполняет никаких тестов. Версия 8.3 (8e162)

Это просто не с утверждением:

Проблема с сервисом сборки

Ошибка Устройства, настроенные для тестирования, не найдены.

Когда я выбираю "Fix it", меня просто перенаправляют на "Edit Bot" -> "Devices" в настройках бота. Иногда списки устройств iOS теперь загружаются намного дольше (~15 секунд), чем раньше (сразу).

Итак, когда устройства наконец появляются (если они вообще появляются) и выбраны, появляется следующее сообщение об ошибке:Internal Error Updating Bot, пожалуйста, попробуйте настроить бот снова

Предоставленные здесь решения не были для меня проблемой, так как я вошел в систему с ботом: редактирование ботов xcode не удалось

Кто-нибудь нашел

  1. причина этого, почему эта ошибка швов внезапно возникает
  2. решение для этого? Переход на более старую версию 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 симулятора. Изменение симуляторов на эти последние версии исправило это.

Другие вопросы по тегам