小编bel*_*low的帖子

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

目标

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

(我认为每个问题都必须说明一个人想要实现的目标.也许这个问题实际上可以通过一种非常不同的方式解决)

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

首先,我们正在讨论具体的,自行开发的硬件.我希望持续集成测试告诉我是否有人在没有告诉所有开发人员的情况下改变了盒子的行为(是的,是的,我知道,这样的事情永远不会发生......)

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

第三:嗯,如果我能得到真正的交易,为什么我要嘲笑任何东西?IDE没有问题,为什么要命令行.

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

到目前为止问题已解决

从命令行运行测试听起来非常简单,但是

xcodebuild -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO clean test
Run Code Online (Sandbox Code Playgroud)

导致一个丑陋的错误:

unsupported build action 'test'
Run Code Online (Sandbox Code Playgroud)

所以我在网上搜索了一篇关于从命令行运行OCUnit测试的文章.

我按照所有步骤操作,我可以从命令行运行我的测试,如下所示:

xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build
Run Code Online (Sandbox Code Playgroud)

剩下的问题

但是,现在对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
Run Code Online (Sandbox Code Playgroud)

由于"此服务器的证书无效",测试失败.错误.

任何指针?

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

任何输入都表示赞赏!

xcode xcodebuild ocunit ios jenkins

14
推荐指数
1
解决办法
1099
查看次数

为什么AutoLayout没有处理我的UICollectionView

我使用了一个非常简单的app应用程序(github上的源代码)UICollectionView.

只要应用程序处于纵向模式,一切正常.但是,当它更改为横向模式时,内容单元格不会被适当调整大小,因此不会显示任何内容.

我认为所有必要的AutoLayout约束都已到位.我知道我可以实现collectionView:layout:sizeForItemAtIndexPath:,但我的目标是尽可能多地使用AutoLayout(只是为了更好地理解AutoLayout).

我在这里错过了什么?

ios autolayout ios6 uicollectionview

6
推荐指数
1
解决办法
3850
查看次数

macOS:作为 AVFoundation CaptureDevice 访问虚拟相机 (OBS)

在 macOS 上,是否可以将虚拟相机(例如OBS)视为 CaptureDevice?例如,我看到 Google Chrome 或 Zoom 可以使用此相机,但使用 AVCaptureDevice.DiscoverySession 我无法看到它。

我做错了吗?

    var deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInMicrophone, .builtInWideAngleCamera]
    #if os(OSX)
    deviceTypes.append(.externalUnknown)
    #else
    deviceTypes.append(contentsOf: [.builtInDualCamera,
                                    .builtInDualWideCamera,
                                    .builtInTelephotoCamera,
                                    .builtInTripleCamera,
                                    .builtInTrueDepthCamera,
                                    .builtInUltraWideCamera])
    #endif
    let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes,
        mediaType: nil, position: .unspecified)

    result = discoverySession.devices.map { device in
        device.localizedName
    }
Run Code Online (Sandbox Code Playgroud)

macos avfoundation avcapturedevice obs

6
推荐指数
1
解决办法
754
查看次数

clang:删除预处理文件中的注释?

有没有办法在生成预处理输出时告诉 clang 删除注释行?

显然,这是 gcc 和 clang 之间的区别,我还没有找到这样做的选项

谢谢

亚历克斯

更准确地说:我似乎对文件输入有问题,请参阅此示例: CONTENT="// \$REMOVE BEFORE FLIGHT\$\r\nprintf(\"HelloWorld!\");" echo "Original:\n$CONTENT" echo "-------------------------" echo "From stdin" echo $CONTENT | cpp -P -E -nostdinc -xc++ - echo "-------------------------" echo "From file" echo $CONTENT > foo.sample cpp -P -E -nostdinc -xc++ foo.sample echo "\n What gives?"

补充:看来,-xArgument 已更改。使用-v,我可以在命令行上看到,实际上-x c++是通过的,而当使用文件作为输入时,它被更改为-x c.

知道为什么吗?

llvm clang

5
推荐指数
0
解决办法
496
查看次数

重启后执行performFetchWithCompletionHandler?

我很确定在重新启动设备后为我的应用程序调用了performFetchWithCompletionHandler,而不必在iOS 7引入时打开应用程序.

但是,现在使用我的示例应用程序,当我的手机重启时似乎没有被调用,在iOS 7/Xcode 5和iOS 8/Xcode 6或5上都没有

有人能指出我关于这个问题的明确文件吗?

我很快会使用示例应用更新此问题

background ios

5
推荐指数
0
解决办法
215
查看次数