在 Xcode 6 和设备上运行测试

Posted

技术标签:

【中文标题】在 Xcode 6 和设备上运行测试【英文标题】:Running tests on Xcode 6 and device 【发布时间】:2014-10-10 07:38:39 【问题描述】:

我正在尝试在 Xcode 6 上运行单元测试 如果我在模拟器(以及 7.1)上运行它们,它们运行良好

其他条件产生此消息:

2014-10-10 01:39:56.190 MyApp[493:173988] Error loading    
/private/var/mobile/Containers/Data/Application/A6C42E86-0147-4447-A605- 
FF864C5BD0F7/tmp/MyAppTests.xctest/MyAppTests:  
dlopen(/private/var/mobile/Containers/Data/Application/A6C42E86-0147-4447-A605-
FF864C5BD0F7/tmp/MyAppTests.xctest/MyAppTests, 262): no suitable image found.  
    Did find:

/private/var/mobile/Containers/Data/Application/A6C42E86-0147-4447-A605-
FF864C5BD0F7/tmp/MyAppTests.xctest/MyAppTests: mmap() error 1 at address=0x006D0000, 
size=0x0001E000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Data/Application/A6C42E86-0147-4447-A605-
FF864C5BD0F7/tmp/MyAppTests.xctest/MyAppTests

我该如何解决?

【问题讨论】:

我也有同样的问题。你找到解决办法了吗? 是的!刚刚,3分钟前!你很幸运!我把解决方案 【参考方案1】:

我按照 Lena Bru 的步骤进行操作,但并没有解决我的问题。 然后我发现this question 关于代码签名问题。 我检查了项目设置中的常规选项卡,发现“团队”设置为“无”。 选择团队后,我的测试运行没有问题。

【讨论】:

从那以后我多次安装Xcode,都没有这个问题【参考方案2】:

您必须首先确保测试目标中的调试符号设置如下:

然后确保您的测试目标的编译源中没有任何类 不是测试的构建阶段 并且您将应用程序的目标作为测试目标的构建阶段的目标依赖项

然后在您的测试目标的常规选项卡中确保设置了测试应用程序,并且在允许测试主机应用程序 API 中有一个复选标记

最后但同样重要的是,您必须确保运行测试的设备未运行 ios 8.0(是的,八点零), 无论是 7.1.2 还是 8.1 - 如果您的 xcode 不支持 8.1,您必须下载此支持 - 它已经可以通过 xcode 首选项中的下载部分获得。

【讨论】:

我的配置相同,但测试不在设备上运行,只是在模拟器上运行。 你的设备是 iOS 8.1 吗? 是的,iOS 8.1 在所有设备上。 你可以尝试打开一个新项目,然后这样做 - 看看测试是否有效? 使用 Xcode 6.1 创建新的单视图应用程序时,会出现此问题。测试不在设备上运行,只能在模拟器上运行。

以上是关于在 Xcode 6 和设备上运行测试的主要内容,如果未能解决你的问题,请参考以下文章

在没有 XCODE 5 的运行 iOS7 的设备上测试 iOS 6 应用程序

在设备上安装配置文件不会执行 xcode 6

不合格的设备 - xcode 6 [重复]

Xcode 4.5 无法识别我的设备 iphone 5 (6.1.3)

Xcode 6.1.1 仪器不能在设备上使用计数器模板

如何在 macOS Mojave 10.14.6 上运行 Xcode 11.4