Hob*_*ige 5 ssl xcode objective-c ios xcode-bots
我已经能够让我的Xcode机器人成功集成并创建一个.ipa文件.我的Xcode服务器上安装了ssl证书,我可以连接到xcode/bots url.当我通过iPad连接到网址时,我首先会被提示安装证书,但它说它没有以红色验证(请参阅附件)
在设备上安装配置文件后,xcode/bots页面有一个绿色的"安装"按钮.点击"安装"按钮后,它永远不会加载应用程序,几分钟后我收到"无法连接到xx.yy.com"
关于这可能是什么的任何想法?
Sun*_*oon 10
https://github.com/mtjddnr/lab/wiki/Xcode-Integration-Server-OTA---Reverse-Proxy-Nginx
互联网 - > [443]路由器(端口转发) - > [443] Nginx服务器(具有HTTPS证书) - > [443] Mac Mini(OS X服务器,Xcode服务器)
(StartSSL certificate is used)
Xcode Server使用20300(HTTP),20343(HTTPS)端口
Install
按钮Install
再次按下按钮Install
按钮时,它会导航到https://<DOMAIN>/xcode/internal/api/integrations/<UNIQUE ID>/install_product
itms-services://?action=download-manifest&url=https://<DOMAIN>:20343/api/integrations/<UNIQUE ID>/<RECENT Integrated ID>/install_manifest.plist
itms-services
URL Schema调用iOS设备来运行安装.install_manifest.plist
然后iOS 根据plist信息下载,它选择正确的IPA
URLhttps://<DOMAIN>:20343/api/assets/token/<RECENT Integrated ID>/<UNIQUE ID>-<Bot Name>/<Intergation #>/<Product Name>-<Device Model>.ipa
<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
TL;DR 您可以通过向自己发送ota.mobileconfig
文件来解决此问题 - 请参阅此答案的底部
怎么了
当您单击“安装”按钮时,IPA 文件不会从https://yourxcode.local下载,而是从https://yourxcode.local:20343下载
侦听https://yourxcode.local:20343 的服务器实际上与在 OS X Server 上运行的 Apache 服务器不同。它是一个单独的 Node.js 应用程序,是 Xcode Server 设置的一部分。
由于只有构建此应用程序的 Apple 人员才知道的原因,此 Node.js 应用程序使用自签名证书,而不是您可能已安装在 OS X Server 上的 SSL 证书。(我真的不明白他们为什么这样做,毫无意义)
因此,为了允许自签名证书在您的设备上工作,您的 Xcode 服务器将为您提供一个无线移动配置文件,其中包含此自签名 Node.js 应用程序的根证书。
这就是您第一次点击“安装”按钮时看到的内容:Safari 询问您是否要接受并安装该新证书。
现在,如果此证书安装失败,iOS 似乎仍将其标记为已安装,即使它实际上并未正确安装。没有 UI 可以撤消此操作或删除证书,因此无法重复上述操作。
您现在被困在一个设备中,除非您擦除设备,否则您无法使用该设备从 Xcode Server 下载版本。(不是开玩笑)
(我认为过去可以使用 iPhone 配置实用程序重置此信息,但在 iOS8 中不再起作用)
解决方案
不用担心,我已经找到了解决方法。
在您的 OS X Server 上,有一个名为
/Library/Developer/XcodeServer/ConfigurationProfiles/ota.mobileconfig
通过电子邮件将此文件发送给您自己。在出现错误的 iOS 设备上Cannot connect to yourxcode.local
,从 Mail.app 以附件形式打开此文件。您的设备将再次询问您是否要安装此证书。单击它。回答是。
返回构建摘要屏幕并再次点击“安装”。由于某种原因,它会再次要求您再次接受证书。单击是并确认。
该应用程序现在将安装在您的设备上。
归档时间: |
|
查看次数: |
2422 次 |
最近记录: |