Xcode 构建服务器失败。未找到配置用于测试的设备
Xcode Build Server failed. The devices configured for testing were not found
我们的 Xcode 构建服务器失败并且不再执行任何测试。
版本 8.3 (8e162)
它只是失败了声明:
Build Service Issue
Error The devices configured for testing were not found.
当我执行 select“修复它”时,系统会简单地重定向到机器人设置中的“编辑机器人”->“设备”。有时 iOS 设备列表的加载时间(~15 秒)比以前(立即)长得多。
因此,当设备最终出现(如果它们甚至出现)并被 selected 时,会出现以下错误提示:
内部错误正在更新机器人,请尝试重新配置机器人
此处提供的解决方案对我来说不是问题,因为我已登录到机器人:
xcode bots edit failed
有没有人找到
- 一个原因,为什么这个错误会突然出现
- 解决这个问题?不幸的是,按照此处的建议,降级到较旧的 xCode 版本对我来说没有选择:https://forums.developer.apple.com/thread/76453 因为我已经得到了用户降级到的版本。
共享方案是否突然出现问题或配置错误可能导致问题?
在我重新创建机器人之前,我真的很想修复机器人,以保留构建历史等。
在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 不管你是谁:)
我的问题是我在 Xcode 的早期版本上设置了机器人(只安装了 11.2 模拟器)。
我将我使用的机器上 Xcode 的版本升级到 运行 机器人,它只安装了 11.4 模拟器。将模拟器更改为这些最新版本修复了它。
我们的 Xcode 构建服务器失败并且不再执行任何测试。 版本 8.3 (8e162)
它只是失败了声明:
Build Service Issue
Error The devices configured for testing were not found.
当我执行 select“修复它”时,系统会简单地重定向到机器人设置中的“编辑机器人”->“设备”。有时 iOS 设备列表的加载时间(~15 秒)比以前(立即)长得多。
因此,当设备最终出现(如果它们甚至出现)并被 selected 时,会出现以下错误提示: 内部错误正在更新机器人,请尝试重新配置机器人
此处提供的解决方案对我来说不是问题,因为我已登录到机器人: xcode bots edit failed
有没有人找到
- 一个原因,为什么这个错误会突然出现
- 解决这个问题?不幸的是,按照此处的建议,降级到较旧的 xCode 版本对我来说没有选择:https://forums.developer.apple.com/thread/76453 因为我已经得到了用户降级到的版本。
共享方案是否突然出现问题或配置错误可能导致问题?
在我重新创建机器人之前,我真的很想修复机器人,以保留构建历史等。
在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 不管你是谁:)
我的问题是我在 Xcode 的早期版本上设置了机器人(只安装了 11.2 模拟器)。
我将我使用的机器上 Xcode 的版本升级到 运行 机器人,它只安装了 11.4 模拟器。将模拟器更改为这些最新版本修复了它。