我们的Xcode Build Server失败,不再执行任何测试。 版本8.3(8e162)
它只是失败了声明:
构建服务问题
错误找不到为测试配置的设备。
当我选择"修复它"一个人被简单地重定向到"编辑Bot" - > "器件"在机器人的设置中。有时,iOS设备列表加载的时间比以前(~15秒)更长(。立即)。
因此,当设备最终显示(如果它们甚至显示)并被选中时,会出现以下错误提示: 内部错误更新Bot,请尝试再次配置bot
这里提供的解决方案对我来说没问题,因为我在机器人登录: xcode bots edit failed
有没有人找到
共享方案或某些东西突然出现问题,或者是否配置错误可能会导致问题?
在我再次创建机器人之前,我真的想修复僵尸程序,以保留构建历史等。
答案 0 :(得分:4)
在github上找到用户@juce提供的解决方案。 Link to original response in Apple Developer Forum
Here' is a link to github post explained a details by @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无论你是谁:)
答案 1 :(得分:0)
我的问题是我在较早版本的Xcode(仅安装11.2模拟器)上设置了该机器人。
我在用于运行机器人的机器上升级了Xcode的版本,该机器仅安装了11.4个模拟器。将模拟器更改为这些最新版本即可解决此问题。