在 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 应用程序