如何通过.ipa在Xcode for iOS中运行自动XCUITests

时间:2017-11-30 16:32:51

标签: ios continuous-integration xcode9 xcode-ui-testing xcuitest

我正面临一个问题,最终会导致以下错误 -

The bundle “$(PRODUCT_NAME)” couldn’t be loaded because its executable couldn’t be located. Try reinstalling the bundle.
Error Domain=IDETestOperationsObserverErrorDomain Code=6 "Early unexpected exit, operation never finished bootstrapping - no restart will be attempted" UserInfo=
{NSLocalizedDescription=Early unexpected exit, operation never finished bootstrapping - no restart will be attempted}

我一直致力于让我的UITest自动化,但我间歇性地(虽然80%的时间)面临上述问题。

我在命令行中使用以下命令。

xcodebuild -project Commute.xcodeproj -scheme CommuteUITests -configuration Debug test -destination "platform=iOS,name=$DEVICE_NAME" -derivedDataPath $DERIVED_DATA_DIR -only-testing:CommuteUITests/$SUITE . 

其中一切都有通常意义,但这导致上述错误,并且我有时提供多个目的地。

另一方面,我想运行.ipa而不是通过源代码构建。

所以基本上这里有2个问题 -

  • 为什么我会得到这些错误,我在互联网上徘徊,但我不是        能找到解决方案吗?
  • 如何开始测试.ipa的测试?

有人请帮助我,我在这里停留很长时间,非常感谢任何帮助/指针。

2 个答案:

答案 0 :(得分:0)

如果您仍然遇到此问题,请检查您的测试是否正在获取正确的info.plist文件。如果测试选择了错误的info.plist文件,则会导致以下错误:

The bundle “$(PRODUCT_NAME)” couldn’t be loaded

我知道你没有使用cocoapods,但这家伙有同样的问题:

https://github.com/CocoaPods/CocoaPods/issues/7178

因此,请确保您的测试使用正确的info.plist。希望这有帮助!

答案 1 :(得分:0)

由于上述答案还不够,这是我的其他见解:

是的,已经加载了Info.plist文件,该文件不应该被加载。但是它是从哪里来的?

我的Tests目标(特别是UI Tests目标)自己拥有一个Info.plist文件,这很好,直到我决定利用当今Xcode提供的@testable机会。 在Xcode中打开项目的文件浏览器: + 0 ,然后 + 1 在底部Info.plist

的搜索字段中输入

现在我有两个引用的Info.plist文件:

  1. Info.plist,具有目标成员身份到目标应用程序(这些类也通过@testable导入)
  2. 具有目标成员资格的
  3. Info.plist是(UI)测试目标

只需取消选择第二个Info.plist目标成员身份(如果您不再需要它,则将其删除)即可。