Xcode第二个目标使得无法使用所选设备或死引导子集运行

时间:2014-08-19 14:56:40

标签: ios xcode xcode5

我遇到了一个问题,我无法在我的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

Cannot run using selected device

或者我在Xcode底部的调试区域中显示以下消息,其中显示Dead bootstrap subsetError spawning child process: Permission denied

Dead bootstrap subset Error spawning child process permission denied

现在,如果我将两个目标归档为iOS,则会提供有关问题可能的额外提示......

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

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

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

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

1 个答案:

答案 0 :(得分:0)

因此,假设两个目标一次正常工作,现在其中一个目标将不再运行,我基本上复制了工作目标并删除了这样的非工作目标:

  • 将错误的目标名称重命名为BadTarget。
  • 将错误的Scheme名称重命名为BadScheme。
  • 复制好的工作目标。
  • 将此新的重复目标重命名为NewTarget。
  • 更改此新目标的Bundle ID,Bundle Name,Bundle Display Name和Product name。
  • 将复制目标时创建的新方案重命名为NewScheme。
  • 测试运行原始工作目标和新的重复目标,以确保它们都能正常工作。
  • 对坏目标中唯一的新重复目标构建设置进行任何其他更改。例如,我在Apple LLVM预处理器部分中定义了一个变量FreeApp或PaidApp,以确定哪个目标是free / lite版本与付费/完整版本。
  • 删除不良目标。
  • 删除错误的方案。

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