ios – SSL连接从命令行运行单元测试时出现问题

前端之家收集整理的这篇文章主要介绍了ios – SSL连接从命令行运行单元测试时出现问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目标

我们的目标是在持续集成环境(Jenkins)中执行单元测试

(我认为每一个问题都必须说明究竟究竟要实现什么,也许问题实际上可以通过一种非常不同的方式解决)

更新:更多关于“你为什么要这样做?

首先,我们正在谈论具体的,自行开发的硬件.而且我想持续一体化测试告诉我,如果有人改变了框的行为,而不告诉所有的开发者(是的,是的,我知道,这样的事情永远不会发生…)

其次,有些(并非所有)连接使用默认无效的证书,所以我们有代码来检查证书的有效性(SecTrustEvaluate等).理想情况下,我们的测试也将测试该代码.但这似乎太多了.

第三:那么,为什么我可以用真实的交易来嘲笑什么呢? IDE没有问题,为什么要命令行.

如果我想要可预测性,我会在所有的测试中返回YES;)(我已经看到人们这样做).不,我想知道代码是否真的适用于我们的设备.这是一种变态欲望吗?

到目前为止已解决问题

从命令行运行测试听起来很直观,但是

xcodebuild -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO clean test

导致一个丑陋的错误

unsupported build action 'test'

所以我在网上搜了一下,发现这篇文章是在Running OCUnit Tests from Command Line.

我遵循所有步骤,我可以从命令行运行我的测试:

xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build

剩下的问题

但是,现在,任何与SSL服务器的NSURLConnection都将失败,因为“此服务器的证书无效”.从命令行运行测试时,我已经听说过钥匙串问题了,但这可以吗?任何SSL连接被拒绝?

重现

https://github.com/below/SSLTestDemo获取样品.打开它,并使用Xcode自己的Test⌘U命令运行样品测试.测试应该成功

现在在命令行运行测试:

xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build

由于“该服务器的证书无效”,测试失败.错误.

任何指针?

我做错了吗?
这是一个真正的错误吗?
>如果是,有没有工作?

任何输入是赞赏!

解决方法

那么,当我们在Jenkins测试的时候,我最终只是不检查证书.

因为在你的应用程序中阻止这种检查的代码是危险的 – 毕竟,它在运输之前可能不会被删除 – 你必须设置环境变量和编译器标志来激活它…

Post Scriptum:

苹果认为这是一个bug,rdar:// problem / 10406441

猜你在找的iOS相关文章