iOS 6 vs 7 外观构建设置
Posted
技术标签:
【中文标题】iOS 6 vs 7 外观构建设置【英文标题】:iOS 6 vs 7 appearance build settings 【发布时间】:2013-09-28 20:18:09 【问题描述】:是否需要将应用的部署目标设置为 ios 7 才能在 iOS 7 设备上获得 iOS 7 外观?
在测试期间就是这样,由于我的测试,现在看起来仍然如此。
我目前正在使用 iOS 7 SDK 和部署目标进行构建 - 让我们说
如果我以 iOS 7 作为部署目标进行构建,则设备将获得 iOS 7 UI。
如果有人能证实,那就太好了。谢谢。
其他构建设置: 架构:$(ARCHS_STANDARD_32_BIT) armv6
有效拱门: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
更新(13 年 10 月 14 日): 我已经解决了在 Xcode 5 中构建的构建错误,并确认在 Xcode 5 中将 SDK 设置为 iOS 7 的构建会提供 iOS 7 UI,即使部署目标为 。
找到此页面的人的表格:
Xcode 4.6
iOS 7 SDK
iOS 7 部署
iOS 7 设备 iOS 7 用户界面 iOS 6 设备(或更低版本) 不适用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 设备(或更低版本) 不适用iOS 6 部署(或更低版本)
iOS 7 设备 iOS 7 用户界面 iOS 6 设备(或更低版本) iOS 6 用户界面【问题讨论】:
它基于Base SDK,而不是部署目标。 是的,这就是我认为它的基础。但是,当部署为 7.0 时,UI 与部署目标为 iOS 6.1 时不同。 我的意思是,在装有 iOS 7 的设备上运行的具有 6.x 基础 SDK 的应用程序仍然像 iOS 6 一样(警报和操作表除外)。具有 iOS 7 基础 SDK(和更早的部署目标)的应用程序会喜欢它运行的任何版本。 嗯,当我为部署 iOS 6 和 iOS 7 进行编译时,我将 SDK 设置为 iOS 7,它们都在 iOS 7 设备上生成相同的 iOS 6 UI。 【参考方案1】:不!您可以将部署目标设置为 6.1 例如,在运行 6.1 的设备上,它看起来像 6.1,而在 iOS7 设备上,它看起来像 7.0。
当然,如果您将部署目标设置为 7.0,它只能在 7.0 及更高版本的设备上运行。
另外,请确保将 Base SDK 设置为“最新 iOS”。并检查您的目标设置没有覆盖您的项目设置。真的,您应该选择这两个中的一个,然后将其放置在适当的位置,然后让它流向另一个。我主要使用 Target 设置。
您希望将 BASE SDK 设置为您正在使用的最高版本。 您希望将您的部署目标设置为您准备支持的最低目标。 操作系统会完成剩下的工作。
【讨论】:
你确定吗?我刚刚尝试将我的部署设置为 6.1 并将 sdk 设置为 iOS 7,但它仍在我的 iOS 7 设备上显示 iOS 6 UI。我在原始问题中添加/记录了我的其他一些构建设置。 是的。确保 TARGET 的设置不会覆盖 PROJECT 的设置。 我检查了我的目标和项目,但问题仍然存在。您能否提供指向 Apple 相关文档的链接?我也许可以从中获得更多信息。 不确定那在哪里。您可以像我一样通过谷歌查找它。正如我所说,这些是我使用的设置......现在大约 6 年......你确定你在那个设备上实际运行 iOS 7......或者你的 xcode 正在运行你认为它在的应用程序测试设备:) 好吧,这实际上可能与我仍然使用 Xcode 4.6 为 iOS 7 构建有关。这是一个完全不同的问题,但仍然相关,但是当我使用 Xcode 5 构建时。构建失败项目中每个代码文件的“缺少编译器规范 ... llvmgcc42 ...”。这与使用 LLVM 4.2 构建的项目有关,现在 Xcode 仅支持 LLVM 5,但我不确定如何解决这个问题。我为此提出了一个单独的问题。【参考方案2】:我遇到了完全相同的问题 - Base SDK 7.0, Deployment Target SDK 6.1 在模拟器上按预期工作(iOS7 外观),但在设备上(已安装 iOS7)导致 iOS6 外观。
原来是因为我在我的 XCode 5 中复制了 6.1 SDK(我之前复制它是为了使用 XCode5 针对 iOS6.1 构建另一个项目)。
我自己没弄明白,这里是原答案的链接:https://***.com/a/19132061/1077481
底线 - 不要在 XCode5 中复制 SDK 6.1 :)
【讨论】:
这很奇怪。我有类似的问题。即使在命令行构建中设置 -sdk iphoneos7.1,也似乎为 iOS6.1 构建了 xcodebuild。 (是的,这个 sdk 存在于我的平台文件夹中以支持老式 L&F)。【参考方案3】:是的,我认为这是预期的行为。如果部署目标是
这是因为它没有可用的状态栏,并且还实现了老式键盘。
现在苹果有下载最后一个兼容版本的功能,如果你更新你的应用程序使其仅iOS7,iOS6的人会自动下载最后一个工作版本。
【讨论】:
好的,谢谢。我正在让我的应用程序以编程方式适应 iOS 7,有没有办法获得 iOS 7 UI 并仍然为旧设备发布版本?嗯,我不知道苹果有这个功能。你能给我一个链接了解详情吗? engadget.com/2013/09/17/… 您知道这些“最后兼容的应用程序”开始保存在 Apple 系统中的日期,还是 Apple 刚刚“开放”访问以前的应用程序版本?它似乎适用于非常旧的更新,因为我刚刚尝试在 iPhone 3G 上下载 Navigon。 对不起,我不知道细节,我猜苹果总是保留你的应用程序的版本,只会使用最后一个。 -1 我的部署目标为 5.0 的实时应用程序不同意。 Apples 文档(iOS7 过渡指南)和我使用的几乎所有应用程序也不同意。当然,在部署目标较低的应用中也可以使用 iOS7 UI。以上是关于iOS 6 vs 7 外观构建设置的主要内容,如果未能解决你的问题,请参考以下文章
什么决定了 iOS 应用程序是不是会在 iOS 7 中获得新外观