带有主机应用程序的 Xcode 测试目标强制错误的目标进入方案的构建部分
Posted
技术标签:
【中文标题】带有主机应用程序的 Xcode 测试目标强制错误的目标进入方案的构建部分【英文标题】:Xcode test target with host application forces wrong target into build section of scheme 【发布时间】:2015-04-01 13:33:00 【问题描述】:当我添加一个需要宿主应用程序才能运行 Xcode 的测试目标时,会添加与我添加的应用程序无关的目标。
我有两个方案(内部和生产)。我想在我们的内部应用程序上运行测试。当我将内部应用程序添加为主机时,我最终会将生产目标添加到构建中并且无法删除它。如果我删除主机应用程序,这会消失,但测试也会失败。
有人知道我哪里出错了吗?
【问题讨论】:
在 Xcode 7.3 和 Xcode 8 beta 6 中发生在我身上。有时它是我项目中的另一个目标被添加,有时它是来自同一工作区中不同项目的目标。如果您尝试从测试方案中移除恶意目标,Xcode 会崩溃。当禁用目标的“测试”复选框时,Xcode 说“该方案的测试操作中的一个或多个测试需要目标我们遇到了同样的问题,我们通过以下步骤解决了这些问题:
在您的测试目标中,转到“常规”选项卡并将托管应用程序设置为“无”,然后转到“构建阶段”并删除目标对先前托管目标的依赖。
(不知道这一步是否必要)转到“Window”->“Projects”,从托管目标中删除 Derived Data 并关闭 Xcode。再次重新打开 Xcode,打开您的项目/工作区。
编辑您的托管目标的方案,选择左侧的“Build”并取消选中“Find Implicit Dependencies” - 我认为这个功能有些错误。
在您的测试目标中,转到“常规”选项卡并将托管应用程序设置回其之前的值,重新检查目标依赖关系。
【讨论】:
请记住,在执行第 3 步时,如果您使用的是 cocoapods ,请确保 pods 目标就在顶部,这里的构建顺序非常重要。否则您的项目可能最终无法检测到 pod 头文件。 什么意思?可以附上截图吗?我的应用在 xcode 8 之后无法在模拟器上运行 - “运行”被禁用 我在一个项目中添加了一个 Cocoa Touch 框架,并收到了 OP 帖子中描述的行为。这个答案的第一步为我做了!谢谢托马斯。我在 Xcode 10.1 中。 这对我有用,但我必须在方案中配置测试部分并重新启用单元测试目标......我同意“有点错误”的部分......它可能是,实际上非常错误以上是关于带有主机应用程序的 Xcode 测试目标强制错误的目标进入方案的构建部分的主要内容,如果未能解决你的问题,请参考以下文章
带有 iOS 9 设备的 Xcode 7 错误:设备不可用(找不到开发者磁盘映像)