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.cer
、xcode-server.key
和 xcode-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