您最近升级的Xcode可能会删除您的项目设置为使用的早期SDK。这个问题有几个解决方案。最简单的解决方案是始终在项目设置中选择“最新”SDK,而不是选择特定的选项。您可能对这个想法感到不舒服,并希望在较早的设备上运行您的应用,但重要的是您应该了解,所有较新的SDK都可以生成适用于较早版本iOS的代码。有一个单独的难以记住的选项来设置部署目标。 (花了我一段时间才知道如何/为什么要使用它,但它非常值得。)
第二个选项是实际查找您的项目设置为的SDK版本并尝试重新安装它。我建议只在必要时才使用此路线,因为它不能保证在每种情况下都能正常工作。由于工具链的重大变化,较旧的SDK可能会或可能不会在更高版本的Xcode中工作(例如,SDK 3.0可能不适用于Xcode 4.3.2)。像gcc/gdb这样的工具已被弃用,转而使用llvm/lldb。不过,您可能有使用旧版SDK的合理原因。您可能必须修复仅在使用较旧的工具链时才存在的错误,或者您可能需要重现仅在构建服务器生成的构建时才会出现的问题。在许多情况下,升级问题出现的位置可能会更容易(例如升级构建服务器上的工具)或降级开发环境。 (安装旧版本的Xcode。)
令人沮丧的原因是苹果高度鼓励它快速采用它的最新工具和技术。它创造了一个更好的产品,因为开发者社区被迫保持当前和竞争力,而用户被迫维持升级以确保应用程序继续工作。这与传统的向后兼容模型相反,允许开发人员支持对产品/平台进行修订。这对于商业来说也很棒,因为快速采用最新产品往往鼓励购买更新的硬件和产品以获得最佳体验。迅速采用确保了更强大的软件以及错误修复,增强功能使其能够向大多数消费者整体提高其在市场上的渗透率。
Xcode 4.3.2发生这种情况吗?在您的项目级构建设置中,您的Base SDK是否设置为“最新的iOS(iOS 5.1)”? – warrenm 2012-03-30 20:50:34
是的,很抱歉,我使用的是版本4.3.2(4E2002)和Mac OS X 10.7.3 – CustomCase 2012-03-30 21:37:04