iOS 6与iOS 7外观构建设置对比

3
应用程序的部署目标是否需要设置为iOS 7才能在iOS 7设备上实现iOS 7外观?在测试期间是这样的,我目前正在使用iOS 7 SDK进行构建,并且部署目标是 - 让我们说< iOS 7。应用程序在我的iOS 7设备上使用iOS 6外观运行。如果我将部署目标设置为iOS 7,则设备将获得iOS 7 UI。如果有人可以确认一下,那就太好了。其他构建设置:架构:$(ARCHS_STANDARD_32_BIT)armv6;有效的Archs:armv6 armv7 armv7s。我已经阅读了其他关于构建设置中的iOS 6和7外观的问题,包括此问题:is there a way to have an app run and display as ios 6 on a iphone with iOS 7? 我也找不到ADC关于此的任何信息。 ADC只提到“与iOS 6等的兼容性”等内容。更新:这可能与我在Xcode 4.6上构建iOS 7有关。 Xcode 5在构建时会出现编译器错误,相关问题是Xcode 5“Missing compiler spec LLVM 4.2” error。更新(10/14/13):我已经解决了在Xcode 5中构建的编译错误,并确认使用SDK设置为在Xcode 5中进行构建,即使部署目标是< iOS 7,也会显示iOS 7 UI。
  • iOS 7 SDK

    • iOS 7部署

      • iOS 7设备
        • iOS 7用户界面
      • iOS 6设备(或更低版本)
        • N/A(不适用)
    • iOS 6部署

      • iOS 7设备
        • iOS 6用户界面
      • iOS 6设备(或更低版本)
        • iOS 6用户界面
  • iOS 6 SDK

    • iOS 6部署

      • iOS 7设备
        • iOS 6用户界面
      • iOS 6设备(或更低版本)
        • iOS 6用户界面

Xcode 5

  • iOS 7 SDK

    • iOS 7部署

      • iOS 7设备
        • iOS 7用户界面
      • iOS 6设备(或更低版本)
        • N/A(不适用)
    • iOS 6部署(或更低版本)

      • iOS 7设备
        • iOS 7用户界面
      • iOS 6设备(或更低版本)
        • iOS 6用户界面

1
它基于Base SDK,而不是部署目标。 - rmaddy
是的,这正是我基于的想法。然而,当部署目标为7.0时,UI与部署目标为iOS 6.1时不同。 - ansonl
2
我的意思是,一个基础SDK为6.x的应用在运行iOS 7的设备上看起来仍然像iOS 6(除了警报和操作表)。一个基础SDK为iOS 7(以及早期的部署目标)的应用程序将看起来像它正在运行的任何版本。 - rmaddy
嗯,当我为部署iOS 6和iOS 7编译时,我的SDK设置为iOS 7,但它们在iOS 7设备上都产生了相同的iOS 6用户界面。 - ansonl
3个回答

4
不!你可以将部署目标设置为6.1,例如,在运行6.1的设备上,它看起来像6.1,而在iOS7设备上,它看起来像7.0。
当然,如果您将部署目标设置为7.0,则只能在7.0及以上设备上运行。
此外,请确保将Base SDK设置为“Latest iOS”。并检查您的目标设置是否未覆盖项目设置。真正应该选择其中之一,并仅在一个地方进行设置,让其流动到另一个地方。我主要使用目标设置。
您需要将BASE SDK设置为最高版本。
您需要将DEPLOYMENT目标设置为LOWEST,以支持您准备好的最低版本。
操作系统会自动处理剩下的事情。

你确定吗?我刚尝试将我的部署设置为6.1和SDK设置为iOS 7,但在我的iOS 7设备上仍然显示iOS 6界面。我已经在原问题中添加/注明了一些其他的构建设置。 - ansonl
是的。确保您的目标设置没有覆盖您的项目设置。 - Cliff Ribaudo
不确定那在哪里。你可以像我一样通过谷歌查找。正如我所说,这些是我使用的设置...大约已经使用了6年...你确定你的设备实际上正在运行iOS 7吗...或者你的Xcode是否在测试设备上运行你认为的应用程序 :) - Cliff Ribaudo
好的,这可能与我仍在使用Xcode 4.6来构建iOS 7有关。这是一个完全不同但仍然相关的问题,但当我使用Xcode 5构建时,每个代码文件都会出现“缺少编译器规范...llvmgcc42...”构建失败。这与项目使用LLVM 4.2构建有关,而现在Xcode仅支持LLVM 5,但我不确定如何解决这个问题。我已经为此提出了一个单独的问题。 - ansonl
好的,但是我对你最初的问题的回答仍然是正确的。做正确的事情。 - Cliff Ribaudo
显示剩余2条评论

1
我曾经遇到过完全相同的问题-基本SDK为7.0,模拟器上的部署目标SDK为6.1,按预期工作(iOS7外观),但是在设备上(安装了iOS7)却呈现iOS6外观。
原来是因为我在XCode 5中复制了6.1 SDK(之前我复制了它以针对iOS6.1构建另一个项目)。
我没有自己解决这个问题,这里是原始答案的链接:https://stackoverflow.com/a/19132061/1077481 底线是-不要在XCode5中复制SDK 6.1 :)

很奇怪。我遇到了类似的问题。即使在命令行构建时设置了-sdk iphoneos7.1,xcodebuild 似乎仍会为 iOS6.1 构建。(是的,这个sdk存在于我的平台文件夹中,以支持旧式的 L&F)。 - karim

0

是的,我认为这是预期的行为。如果部署目标是<7,则在您的iOS 7设备上运行时,它将像iOS 6应用程序一样运行。

这是因为它没有可用的状态栏,并且还实现了旧样式键盘。

现在苹果有了下载最后兼容版本的功能,如果您将应用程序更新为仅适用于iOS7,则使用iOS6的人将自动下载最后一个工作版本。


好的,谢谢。我正在编写我的应用程序以适应iOS 7,有没有办法获取iOS 7的UI并仍然发布旧设备版本? 嗯,我不知道苹果有这个功能。你能给我提供详细信息的链接吗? - ansonl
http://www.engadget.com/2013/09/17/apple-ios-last-compatible-version-app-iphone-ipod-ipad/ - user1923975
你知道"最后兼容应用程序"开始保存在苹果系统中的日期吗?还是苹果刚刚"开放"了访问先前的应用程序版本?它似乎可以使用非常旧的更新,因为我刚刚尝试在iPhone 3G上下载Navigon。 - ansonl
抱歉,我不清楚细节,但我猜想苹果公司会一直保留您的应用程序版本,并使用最新的版本。 - user1923975
我的实时应用程序与部署目标5.0不一致。苹果的文档(iOS7过渡指南)以及我使用的几乎所有应用程序也不一致。当然,可以在具有较低部署目标的应用程序中拥有iOS7 UI。 - Matthias Bauch
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接