Xcode 第二个目标给出Cannot Run Using Selected Device 或 Dead Bootstrap Subset

Posted

技术标签:

【中文标题】Xcode 第二个目标给出Cannot Run Using Selected Device 或 Dead Bootstrap Subset【英文标题】:Xcode second target gives Cannot Run Using Selected Device or Dead Bootstrap Subset 【发布时间】:2014-08-19 14:56:39 【问题描述】:

我遇到了一个问题,我无法在我的 Xcode 项目中运行第二个目标(使用 Xcode 5.1.1)。

我检查了方案,它们看起来是相同的,只是它们都指向自己正确的可执行 .app(它们应该如此)。可执行名称与构建设置中的产品名称匹配。

我检查了构建设置以确保它们都指向单独的 Info.plist 文件(target1-Info.plist 和 target2-Info.plist)。第二个目标与第一个目标具有不同的目标名称、不同的 Bundle ID 和不同的产品名称。

为了让第一个目标运行,我不得不关注这个帖子:Xcode 5 cannot run using selected device on ios simulator

但是第二个目标仍然不能在模拟器中运行,我会得到以下错误之一:

要么我得到这个错误,上面写着Xcode cannot run using the selected device

或者我在 Xcode 底部的调试区域中收到以下消息,上面写着 Dead bootstrap subsetError spawning child process: Permission denied

现在,如果我为 iOS 归档这两个目标,这将提供一个关于问题可能是什么的额外提示......

当我归档目标 1 时,构建和归档大约需要 15 到 20 秒,并生成 43MB 的估计文件大小(这个归档是正确的)。

但是当我尝试归档目标 2 时,构建和归档大约需要 1 秒,并生成一个 5MB 的估计文件大小,带有一个空白的白色图标。目标 2 应该与目标 1 相同的 43MB 文件大小,因此很明显 Xcode 中的某些地方被混淆并导致目标 2 无法正确存档(这可以解释为什么它没有在模拟器中运行)。

我注意到的另一件事是在构建设置下,目标 2 缺少所有 Apple LLVM 部分,我试图让它们出现但不能。

任何想法将不胜感激。谢谢

【问题讨论】:

【参考方案1】:

所以假设两个目标同时工作正常,现在其中一个将不再运行,我基本上复制了工作目标并删除了非工作目标,如下所示:

将错误的目标名称重命名为 BadTarget 之类的名称。 将错误的方案名称重命名为 BadScheme 之类的名称。 复制良好的工作目标。 将这个新的复制目标重命名为 NewTarget。 更改此新目标的捆绑 ID、捆绑名称、捆绑显示名称和产品名称。 将复制目标时创建的新方案重命名为 NewScheme 之类的名称。 测试运行原始工作目标和新复制目标以确保它们都工作。 对错误目标中唯一的新复制目标构建设置进行任何其他更改。例如,我在 Apple LLVM 预处理器部分定义了一个变量 FreeApp 或 PaidApp,以识别哪个目标是免费/精简版与付费/完整版。 删除错误的目标。 删除错误的方案。

我希望有人想出一个更简单的解决方案,但这是我能想出的唯一解决方法。

【讨论】:

以上是关于Xcode 第二个目标给出Cannot Run Using Selected Device 或 Dead Bootstrap Subset的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 5 项目中添加第二个目标

XCode iPhone 多个目标 - 创建了第二个不同名称的可执行文件,但我的第二个“可执行文件”的“路径”是错误的

第二个目标的代码签名临时发布问题

尝试运行我的应用程序的第二个目标时的 SIGABRT

xib 文件显示在错误的目标中

链接 NIB/Xib - 目标 C - xCode