2017-04-27 107 views
14

我们的Xcode Build Server失败,不再执行任何测试。 版本8.3(8e162)Xcode构建服务器失败。未找到配置用于测试的设备

它只是失败的声明:

构建服务问题

错误配置了用于测试的设备都没有发现。

enter image description here

当我选择“修复”一个被简单地重定向到“编辑博特” - 在机器人的设置>“设备”。有时iOS设备列表现在加载的方式比以前(立即)更长(〜15秒)。

所以,当装置终于出现(如果他们甚至显示)和被选中,出现以下错误提示: 内部错误更新博特,请重新配置BOT

所提供的解决方案在这里,对我来说没有任何问题,因为我是在BOT登录: xcode bots edit failed

有没有人发现

  1. 一个原因,WH y此错误接缝突然发生
  2. 解决方案为此?不幸的是,降级到较旧的xCode版本并不适合我,如下所示:https://forums.developer.apple.com/thread/76453因为我已经获得了用户降级的版本。

是什么东西突然与共享方案或什么东西或错误配置可能导致问题?

之前,我确实创造了一遍又一遍的机器人,我真的想修复机器人,以保持历史的构建等

+2

我有以下版本的同一问题 sudo xcrun xcscontrol --list-simulators

非常感谢@juke: MacOS的服务器:然后检查它的工作5.3(16S4123), Xcode中:8.3.2 (8E2002) – TestAutomator

+0

@TestAutomator我提供了一个到forums.developer.apple的链接。com从8.3升级到8.3.2时有人遇到问题 - 潜在降级可能会解决问题吗? – Lepidopteron

+0

不幸的是,原来我的MacMini也存在硬件问题,这可能是问题的根源。 – TestAutomator

回答

5

发现用户@juce在github上提供了解决方案。 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 

然后,重新启动模拟器,并可能重新启动计算机(这是我的情况)。不管你是谁:)

+0

工程就像一个魅力。谢谢 –

相关问题