概述和动机

我想设置一些仅针对iOS设备构建的方案。

例如,我从不希望使用Simulator目标构建Ad Hoc构建。选择Ad Hoc构建的Simulator目的地的能力仅仅是噪音。

所需的行为

实际行为

我尝试了什么

  • 我在仅用于设备的配置中删除了“支持平台”中的“iphonesimulator”值,如下所示:


  • 在“临时”方案设置中,我禁用了运行和配置文件步骤。我离开了存档步骤


  • 对于所有构建步骤(包括禁用的步骤),我将构建配置设置为“Ad Hoc”,以前仅将其设置为iphoneos

  • 到目前为止的结果

    我仍然可以在方案下拉列表中选择Simulator作为目标:

    但是,如果我在模拟器目标位置运行该方案,则会收到预期的,适当的错误:

    这对我自己会更好,而我的团队将只能隐藏这些无效的目的地。

    有没有更好的方法来管理给定方案可使用的目的地?

    最佳答案

    更新了答案

    嗯这适用于我一个目标。我从配置中的“受支持的平台”中删除了平台,它们从“方案”中消失了。

    然后,我尝试添加允许模拟器的另一种配置,并且它仍然只是设备目标可见。然后,我复制了目标并添加到iphonesimulator中……模拟器在两个目标的方案中都显示了出来。

    不幸的是,我认为可用的目的地是所有目标可用的目的地的汇总列表。提交错误报告:http://bugreporter.apple.com

    另一个更新

    啊!看起来像Xcode Bug一样,更新了Scheme选择器!我配置了每个目标的设置-一个忽略了模拟器,另一个保留了它-然后关闭并重新打开了项目。神奇的是,第一个目标只有iOS设备目标,而另一个目标是设备+模拟器目标。

    因此,,答案很可能是复制所需的目标并将其设置为仅允许设备使用,然后确保您的方案名称正确,以便您知道要构建哪个目标。关闭并重新打开该项目,该列表应会出现,正如您所期望的那样。

    10-08 16:57