我已经能够让我的 Xcode 机器人成功集成并创建一个 .ipa 文件。我的 Xcode 服务器上安装了一个 ssl 证书,我可以很好地连接到 xcode/bots url。当我通过 iPad 连接到 url 时,首先提示我安装证书,但它以红色显示未验证(见附件)
我在设备上安装配置文件后,xcode/bots 页面有一个绿色的“安装”按钮。单击“安装”按钮后,它永远不会加载应用程序,几分钟后我收到“无法连接到 xx.yy.com”
有什么想法吗?
最佳答案
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 服务器使用 20300(HTTP)、20343(HTTPS) 端口
问题
- 进入 Xcode 服务器 WEB
- 选择机器人
- 点击
Install
按钮 - 如果是第一次,它会要求安装证书。安装它并返回网页。
- 点击
Install
再次按钮 - 警告消息“无法连接到服务器”
OTA 的工作原理
- 当点击
Install
按钮,它导航到https://<DOMAIN>/xcode/internal/api/integrations/<UNIQUE ID>/install_product
- 它将状态 302 返回到新位置:
itms-services://?action=download-manifest&url=https://<DOMAIN>:20343/api/integrations/<UNIQUE ID>/<RECENT Integrated ID>/install_manifest.plist
-
itms-services
URL Schema 调用 iOS 设备运行安装。 - iOS 下载
install_manifest.plist
然后根据plist信息,选择右边IPA
网址 -
https://<DOMAIN>:20343/api/assets/token/<RECENT Integrated ID>/<UNIQUE ID>-<Bot Name>/<Intergation #>/<Product Name>-<Device Model>.ipa
- 下载并安装
分析
- 在第 2 步,它返回 URL
<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
关于ios - Xcode bot 安装链接请求超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28336185/