Xcode Server CI 构建无法与 iOS 7.1 一起安装

Posted

技术标签:

【中文标题】Xcode Server CI 构建无法与 iOS 7.1 一起安装【英文标题】:Xcode Server CI builds fail to install with iOS 7.1 【发布时间】:2014-03-12 13:12:26 【问题描述】:

我们目前为 CI 构建设置了 Xcode 服务器。

当尝试在设备上下载构建时,通过 SSL 访问时,我收到“无法连接到 server.local”。

当我尝试通过 http 下载时,我创建了“无法安装应用程序,因为 server.local 的证书无效”

我认为这与 ios 7.1 中 OTA 下载的 SSL 验证有关,但我使用的是自分配证书。

这是 Xcode 服务器的错误还是限制。我们需要不是自分配的证书吗?

谢谢

【问题讨论】:

我在使用常规 SSL 证书时遇到了同样的问题(由 chrome 和 safari 验证) 你填过bug吗? 【参考方案1】:

您最好的解决方案是创建自定义 CA 并将其安装在设备上,然后为您的特定域创建证书并将其安装在 Xcode 服务器上。

首先创建一个 CA。

openssl genrsa -out Custom-CA.key 2048
openssl req -x509 -new -key Custom-CA.key -out Custom-CA.cer -days 730 -subj /CN="Company Name Certificate Authority"

现在您需要创建一个使用上述机构签名的证书。

重要提示:server.local 应替换为您机器的主机名(最初的问题是使用 server.local)。 IP 地址将不起作用。

openssl genrsa -out xcode-server.key 2048
openssl req -new -out xcode-server.req -key xcode-server.key -subj /CN=server.local
openssl x509 -req -in xcode-server.req -out xcode-server.cer -CAkey Custom-CA.key -CA Custom-CA.cer -days 730 -CAcreateserial -CAserial xcode-server_serial.txt

然后,您需要在要与服务器一起使用的所有设备上安装 Custom-CA.cer。最简单的方法是将Custom-CA.cer 通过电子邮件发送到这些设备。

在 OS X 服务器中,您需要导入 Custom-CA.cerxcode-server.keyxcode-server.cer 并使用 server.local 证书作为服务器 SSL 证书。

(来自guide的信息)

例如如果您的机器主机名是xcodeserver.companyname.com,您将输入/CN=xcodeserver.companyname.com

【讨论】:

我遵循了这个并且它有效,但是每当我点击产品时,我仍然得到证书无效,如果我通过 https 我无法连接到服务器,有什么想法吗? 如果您使用HTTPS 访问,您可以访问Safari 中服务器上的任何页面吗? 我可以打开机器人站点,并且可以很好地浏览,它甚至要求我信任我制作的证书,我这样做了,但是每当我点击产品时,使用 HTTPS我得到无法连接到服务器。我用查尔斯调试它,似乎我得到“SSLHandshake:握手期间远程主机关闭连接”。此外,我不是唯一一个遇到此类问题的人 - devforums.apple.com/message/961471#961471 啊,它 不应该 要求您信任证书 - 这就是这一步的重点“然后您需要在您的所有设备上安装 Custom-CA.cer想与服务器一起使用。最简单的方法是通过电子邮件将 Custom-CA.cer 发送到这些设备。 - 这样做意味着证书已添加到设备存储中。你这样做了吗? 我做了,在设置中它看起来和这个完全一样(来自五个提示帖子)-blogcdn.httpwatch.com/wp-content/uploads/2013/12/custom_CA.png【参考方案2】:

你是对的。在 7.1 OTA 中,从 xcode 服务器安装需要 SSL 验证。因此,您可以为您的 xcode 服务器获取 SSL 证书或执行此解决方法。

    在桌面浏览器上转到您的 xcode 服务器机器人屏幕。 从您想要的机器人下载产品 (.ipa)。 在连接设备的情况下打开 iTunes。 将 .ipa 文件拖入 iTunes。

您应该能够将您的构建替换/安装到您的设备上。

不像 OTA 构建那样简单,但它确实有效。

【讨论】:

我有一个自签名 SSL 证书。这是由服务器自动创建的。如上所述,即使使用经过验证的 SSL 证书,它似乎也已损坏。 感谢您的 cmets,但这并不比将设备插入开发机器上安装更容易。【参考方案3】:

我找到了解决方案。我可以确认第 4 步和第 5 步对我有用!

http://blog.httpwatch.com/2013/12/12/five-tips-for-using-self-signed-ssl-certificates-with-ios/#comments

【讨论】:

【参考方案4】:

有完全相同的问题,这是 Safari 上的浏览​​器缓存问题。

我进入设置 -> Safari -> 高级 -> 网站数据,然后在我的 Xcode 服务器网站上向左滑动以显示“删除”按钮并单击该网站。

下次我在 Safari 中浏览 Xcode 服务器并尝试安装构建时,我收到了安装 OTA 证书的提示,当我接受完成后,我可以安装应用程序。

【讨论】:

以上是关于Xcode Server CI 构建无法与 iOS 7.1 一起安装的主要内容,如果未能解决你的问题,请参考以下文章

访问 Xcode Server CI bot 运行中的构建文件夹(环境变量?)

XCode Server CI Bot Integrate 错误(Swift)

无法使用 OSX Server 3.2.1 在 XCode 6.0.1 中创建 CI Bot

Xcode CI - 用于上传到 Fabric 的 Bot 脚本给出错误“无法检测构建环境”

Apple CI / Xcode 服务和 Jenkins

OSX Server Xcode CI 服务意外的内部服务器错误