我在物理设备(在我的情况下使用iOS 8.1的iPhone 6)上运行单元测试目标时遇到问题。为此,我创建了一个全新的iOS Xcode项目,打开它并使用Cmd + U(Product - > Test)运行测试。该应用程序成功编译并询问我的代码签名凭据。该应用程序甚至在设备上打开了。这一切都很好。
但测试从未运行过,Xcode在“测试”中停留了几分钟,然后最终退出:
*** Canceling tests due to timeout in Waiting for test process to check in...
控制台抛出一些代码签名错误或类似错误:
2014-10-30 08:54:12.585 Test[4721:1298810] Error loading /private/var/mobile/Containers/Data/Application/B727E18E-48BC-4A7E-BDBA-19157ED5A4AC/tmp/TestTests.xctest/TestTests:
dlopen(/private/var/mobile/Containers/Data/Application/B727E18E-48BC-4A7E-BDBA-19157ED5A4AC/tmp/TestTests.xctest/TestTests, 262): no suitable image found.
Did find: /private/var/mobile/Containers/Data/Application/B727E18E-48BC-4A7E-BDBA-19157ED5A4AC/tmp/TestTests.xctest/TestTests:
code signature invalid for '/private/var/mobile/Containers/Data/Application/B727E18E-48BC-4A7E-BDBA-19157ED5A4AC/tmp/TestTests.xctest/TestTests'
DevToolsBundleInjection: Error loading bundle '/private/var/mobile/Containers/Data/Application/B727E18E-48BC-4A7E-BDBA-19157ED5A4AC/tmp/TestTests.xctest'
我真的没有得到它,应用程序正确签名,但我猜测注入的测试库不是。
任何人都知道如何解决这个问题?或者这是否意味着我们仅限于在模拟器中进行测试?
我一直在测试的项目可以在我的GitHub上找到:https://github.com/Legoless/StackOverflow/tree/master/Objective-C/TestTargetFailure
感谢。
答案 0 :(得分:2)
这是一个代码签名问题。
解决方案:转到测试目标的构建设置,并确保设置正确(即匹配测试目标的Bundle ID)供应配置文件和代码签名标识。您可以为此生成通配符配置文件。