Xcode bot安装链接请求超时

时间:2015-02-05 04:23:16

标签: ios objective-c xcode ssl xcode-bots

我已经能够让我的Xcode机器人成功集成并创建一个.ipa文件。我的Xcode服务器上安装了ssl证书,我可以连接到xcode / bots url。当我通过iPad连接到网址时,我首先会提示我安装证书,但是它说它没有以红色验证(请参阅附件)Not verified

在设备上安装配置文件后,xcode / bots页面有一个绿色的“安装”按钮。一旦我点击“安装”按钮它就永远不会加载应用程序,几分钟后我得到一个“无法连接到xx.yy.com” Cannot connection

关于这可能是什么的任何想法?

2 个答案:

答案 0 :(得分:10)

https://github.com/mtjddnr/lab/wiki/Xcode-Integration-Server-OTA---Reverse-Proxy-Nginx

Nginx +反向代理+ OS X服务器[Xcode服务器]

设置

互联网 - > [443]路由器(端口转发) - > [443] Nginx服务器(具有HTTPS证书) - > [443] Mac Mini(OS X服务器,Xcode服务器)

(StartSSL certificate is used)

Xcode Server使用20300(HTTP),20343(HTTPS)端口

问题

  1. 输入Xcode Server WEB
  2. 选择Bot
  3. 点击Install按钮
  4. 如果是第一次要求安装证书。安装它并返回网页。
  5. 再次点击Install按钮
  6. 警告消息“无法连接到服务器”
  7. OTA如何运作

    1. 点击Install按钮后,会导航至https://<DOMAIN>/xcode/internal/api/integrations/<UNIQUE ID>/install_product
    2. 它将状态302返回到新位置:itms-services://?action=download-manifest&url=https://<DOMAIN>:20343/api/integrations/<UNIQUE ID>/<RECENT Integrated ID>/install_manifest.plist
    3. itms-services网址架构调用iOS设备运行安装。
    4. iOS下载install_manifest.plist然后根据plist信息选择正确的IPA网址
    5. https://<DOMAIN>:20343/api/assets/token/<RECENT Integrated ID>/<UNIQUE ID>-<Bot Name>/<Intergation #>/<Product Name>-<Device Model>.ipa
    6. 下载&amp;安装
    7. 分析

      • 在第2步,它返回网址<DOMAIN>:20343。路由器(或防火墙)未打开端口号20343
      • 此外,路径应为/xcode/internal/api/integrations/而不是/api/integrations/

      如何修复

      地点:/Library/Developer/XcodeServer/CurrentXcodeSymlink/Contents/Developer/usr/share/xcs/xcsd/

      修改constants.js第25行

      XCSProxiedAPIBasePath: '/xcode/api',XCSProxiedAPIBasePath: '/xcode/internal/api',

      评论classes/fileClass.js第383行

      //host = host.split(':')[0] + ':' + k.XCSHTTPSPort; // force traffic over the HTTPS port

      修改classes/fileClass.js第384行

      var basePath = k.XCSAPIBasePath; // connection is direct to xcsd, always

      var basePath = k.XCSProxiedAPIBasePath; // connection is direct to xcsd, always

      重启服务器

答案 1 :(得分:4)

TL; DR您可以通过向自己发送ota.mobileconfig文件来解决此问题 - 请参阅此答案的底部

发生了什么

单击“安装”按钮时,不会从https://yourxcode.local下载IPA文件,而是从https://yourxcode.local:20343下载

侦听https://yourxcode.local:20343的服务器实际上与OS X Server上运行的Apache服务器不同。它是一个单独的Node.js应用程序,它是Xcode Server设置的一部分。

由于只有Apple人员知道构建此问题的原因,此Node.js应用程序使用的是自签名证书,而不是您可能已在OS X Server上安装的SSL证书。 (我真的不明白为什么他们这样做,这没有任何意义)

因此,为了允许自签名证书在您的设备上运行,您的Xcode Server将为您提供无线移动配置配置文件,其中包含此自签名Node.js应用程序的根证书。< / p>

这是您第一次点击“安装”按钮时看到的内容:Safari会询问您是否要接受并安装该新证书。

现在,如果此证书的安装失败,iOS似乎仍将其标记为已安装,即使它实际正确安装。没有用于撤消此操作的UI或删除证书,因此无法重复上述操作。

除非您擦除设备,否则您现在无法使用从Xcode Server下载构建的设备。 (不开玩笑)

(我认为以前可以通过iPhone配置实用程序重置此信息,但是它已经停止与iOS8一起工作)

<强>解决方案

不用担心,我找到了解决方法。

在OS X Server上,有一个名为

的文件
  

/Library/Developer/XcodeServer/ConfigurationProfiles/ota.mobileconfig

将此文件通过电子邮件发送给自己在您收到Cannot connect to yourxcode.local错误的iOS设备上,从Mail.app打开此文件作为附件。如果要安装此证书,您的设备将再次询问您。点击它。回答是。

返回构建摘要屏幕并再次点击安装。出于某种原因,它将再次要求您再次接受证书。单击是并确认。

现在,应用程序将安装在您的设备上。