在我在设备上安装了配置文件后,xcode/bots页面上会出现绿色的“安装”按钮。当我点击“安装”按钮后,它无法加载应用程序,几分钟后出现“无法连接xx.yy.com”的错误消息(见附件)。
你有什么想法吗?
https://github.com/mtjddnr/lab/wiki/Xcode-Integration-Server-OTA---Reverse-Proxy-Nginx
互联网 -> [443]路由器(端口转发) -> [443]Nginx服务器(具有HTTPS证书) -> [443]Mac Mini(OS X服务器,Xcode服务器)
(使用StartSSL证书)
Xcode服务器使用20300(HTTP)、20343(HTTPS)端口
安装
按钮安装
按钮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
,然后根据 plist 信息选择正确的 IPA
URL。https://<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
要将basePath
变量设置为k.XCSProxiedAPIBasePath
,因为连接始终直接连接到xcsd
。
简而言之,您可以通过发送ota.mobileconfig
文件来解决此问题 - 请参见本答案底部
发生了什么
当您单击安装按钮时,IPA文件并未从https://yourxcode.local下载,而是从https://yourxcode.local:20343下载。
监听https://yourxcode.local:20343的服务器实际上不是运行在您的OS X Server上的同一台Apache服务器。它是Xcode Server设置的一个独立的Node.js应用程序。
由于只有苹果公司内部人员才知道的原因,该Node.js应用程序使用的是自签名证书,而不是您可能已经安装在OS X服务器上的SSL证书。(我真的不明白他们为什么要这样做,这毫无意义)
因此,为了使你的自签名证书在设备上工作,你的Xcode服务器提供了一个通过空中安装的移动配置文件,其中包含你这个自签名Node.js应用程序的根证书。这就是第一次点击“安装”按钮时看到的内容:Safari会问你是否要接受并安装新的证书。
现在,如果安装此证书失败,则似乎iOS仍将其标记为已安装,即使它实际上没有正确安装。没有界面可以撤消此操作或删除证书,因此无法重复上述操作。
现在你只能使用无法从Xcode服务器下载构建的设备,除非你擦除你的设备。(不是玩笑)
(我认为以前可以使用iPhone配置实用程序重置此信息,但它完全停止与iOS8一起工作)
解决方案
别担心,我找到了一个解决方法。
在你的OS X服务器上,有一个名为
将此文件发送到您的电子邮件。在出现/Library/Developer/XcodeServer/ConfigurationProfiles/ota.mobileconfig
无法连接到yourxcode.local
错误的iOS设备上,从Mail.app中打开此文件作为附件。您的设备将再次询问您是否要安装此证书。点击通过。