无法确定 xxxTest TEST_HOST 的包标识符
Could not determine bundle identifier for xxxTest TEST_HOST
我们确实很难让 CI 与 Xcode 一起工作。我们遇到问题 Could not determine bundle identifier for xxxTest TEST_HOST: some path that does not exist
.
到目前为止我们做了什么:
- 在 CI 机器上,我们能够 运行 设备上的所有测试,但如果我们通过提交触发它,CI 确实会以该错误结束。
- 当我们尝试 运行 应用程序测试时,我们在其他机器上也遇到了这个问题。我们通过清洁机器并重新启动设备来解决这个问题。(确实修复了一些方案设置)我们不能 运行 所有测试但我们有时 运行 无缘无故地解决这个问题。
- 我们还仔细检查了方案。主机应用程序在每个测试方案中都设置为应用程序本身。
我们的项目有以下目标:
- 应用程序
- 应用单元测试
- 应用UI测试
- AppeareanceKit(模块)
- AppeareanceKit 单元测试
- 模型(模块)
- 模型单元测试
找到解决方案:
- 禁用应用程序以外的测试UI测试
- 运行测试一次
- 启用所有测试
- 运行 测试
问题:
- 那里发生了什么?我们怎样才能避免这个问题反复出现?
已知问题:
在我的应用程序中我找到了解决方案。
问题当然出在测试目标上。
我希望这个解决方案也对您有用。转到您的测试目标构建设置。
搜索测试主机。
在我的例子中,这个 testHost 看起来像
build/{buildConfigurationName}-iphoneos/{schemeName}.app/{appName}
这是错误的,因为实际路径必须是
build/{buildConfigurationName}-iphoneos/{schemeName}.app/{schemeName}
所以如果你有一个名为 Alpha 的构建配置,在你名为 MyApp 的应用程序中,使用名为 MyApp-Alpha 的方案,测试主机路径应该是
build/Alpha-iphoneos/MyApp-Alpha.app/MyApp-Alpha
是
build/Alpha-iphoneos/MyApp-Alpha.app/MyApp
我希望这可以帮助...不幸的是,这个问题在很多情况下都会出现。
所以在遇到这个问题很久之后,我们可以找到正确的复选框来解决这个问题。
这听起来有点奇怪,但问题在于项目设置中命令行构建的配置。
我假设发生这种情况是因为我们总是针对调试配置进行测试并且它被设置为发布。因此它为测试主机做了错误的构建。
这确实设置了 {projectname}.xcodeproject
内的 defaultConfigurationName
。
如果您对此有更多见解,请发表评论。
出现此错误的一个原因是您的目标 info.plist 不在其路径中。因此,如果您移动它或删除对它的引用,您可能会收到此错误。
因此,如果您移动了它,请将它放回原来的位置或路径。如果您删除了对它的引用,请再次添加它,关闭并重新打开项目。
我们确实很难让 CI 与 Xcode 一起工作。我们遇到问题 Could not determine bundle identifier for xxxTest TEST_HOST: some path that does not exist
.
到目前为止我们做了什么:
- 在 CI 机器上,我们能够 运行 设备上的所有测试,但如果我们通过提交触发它,CI 确实会以该错误结束。
- 当我们尝试 运行 应用程序测试时,我们在其他机器上也遇到了这个问题。我们通过清洁机器并重新启动设备来解决这个问题。(确实修复了一些方案设置)我们不能 运行 所有测试但我们有时 运行 无缘无故地解决这个问题。
- 我们还仔细检查了方案。主机应用程序在每个测试方案中都设置为应用程序本身。
我们的项目有以下目标:
- 应用程序
- 应用单元测试
- 应用UI测试
- AppeareanceKit(模块)
- AppeareanceKit 单元测试
- 模型(模块)
- 模型单元测试
找到解决方案:
- 禁用应用程序以外的测试UI测试
- 运行测试一次
- 启用所有测试
- 运行 测试
问题:
- 那里发生了什么?我们怎样才能避免这个问题反复出现?
已知问题:
在我的应用程序中我找到了解决方案。
问题当然出在测试目标上。
我希望这个解决方案也对您有用。转到您的测试目标构建设置。
搜索测试主机。
在我的例子中,这个 testHost 看起来像
build/{buildConfigurationName}-iphoneos/{schemeName}.app/{appName}
这是错误的,因为实际路径必须是
build/{buildConfigurationName}-iphoneos/{schemeName}.app/{schemeName}
所以如果你有一个名为 Alpha 的构建配置,在你名为 MyApp 的应用程序中,使用名为 MyApp-Alpha 的方案,测试主机路径应该是
build/Alpha-iphoneos/MyApp-Alpha.app/MyApp-Alpha
是
build/Alpha-iphoneos/MyApp-Alpha.app/MyApp
我希望这可以帮助...不幸的是,这个问题在很多情况下都会出现。
所以在遇到这个问题很久之后,我们可以找到正确的复选框来解决这个问题。
这听起来有点奇怪,但问题在于项目设置中命令行构建的配置。
我假设发生这种情况是因为我们总是针对调试配置进行测试并且它被设置为发布。因此它为测试主机做了错误的构建。
这确实设置了 {projectname}.xcodeproject
内的 defaultConfigurationName
。
如果您对此有更多见解,请发表评论。
出现此错误的一个原因是您的目标 info.plist 不在其路径中。因此,如果您移动它或删除对它的引用,您可能会收到此错误。
因此,如果您移动了它,请将它放回原来的位置或路径。如果您删除了对它的引用,请再次添加它,关闭并重新打开项目。