我的应用程序不能在较慢的硬件上运行,但我想支持iOS 4.0,这可以在iPhone 3G(以及相当于第二代iPod touch)上运行。是否有一种方法可以通过构建设置防止安装?(我不想在应用程序启动时在代码中强制执行它。)我认为VALID_ARCHS构建设置可能会通过删除arm6(仅留下arm7)来实现,但我成功地将其安装在第二代iPod touch上。
(当我发布这个问题的时候,我已经找到了答案,但是“iPhone 3Gs和iPhone 3”这个问题不太容易搜索,所以我发布了这个问题并回答它,以帮助未来的其他人。)iPhone 1、iPhone 3G是armv6架构,而 iPhone 3Gs、iPhone 4则是armv7架构(iPad是armv7架构)。您应该在Info.plist中设置UIRequiredDeviceCapabilities属性为所需的架构(在此情况下为armv7)。您还应该从目标构建设置中删除armv6以减少编译时间。原始答案在这里。编辑:苹果不会接受带有这个密钥的提交。我将尝试可能重复的问题,然后在这里更新我的答案。编辑2:看起来那个答案起作用了。FYI:最终我不得不支持旧型号,因为我的应用程序曾经被错误地发布过。苹果的系统要求您支持您曾经支持过的所有硬件型号。 (这对于消费者来说是有意义的,即您下载或购买的应用程序不应该停止工作,但对我来说却很糟糕。)