本文介绍了更新应用到iOS6的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

一直没能找到关于苹果开发者论坛,这个问题一个准确的答复。

Haven't been able to find an accurate response to this question on Apple Developer forums.

与其他苹果开发者,我会提升我们的应用程序以支持iOS6的设备。
我下载X code ++ 4.5,支持iOS6的SDK。

As with other Apple Developers, I will upgrading our apps to support iOS6 devices.I've downloaded XCode 4.5 which supports iOS6 SDK.

我了解使用该X code编译我无法提交我的应用程序版本的应用程序商店,但是:

I understand I cannot submit versions of my app to the app store using this XCode build, however:


  1. 如果我重新编译和使用的6.0部署目标构建一个应用程序,例如解决所有已知问题德precated方法等,当苹果发布的GM iOS6的,将任何构建编译和iOS5的设备的工作呢?

  1. if I re-compile and build an app using the deployment target of 6.0 and fix all the known issues e.g. deprecated methods etc. when Apple releases GM for iOS6, will any build compile and work with iOS5 devices as well?

我是不是应该被提交为5.0或将那些无法在iOS6的运行部署目标应用程序?

Should I just be submitting apps with a deployment target of 5.0 or will those fail to run in iOS6?

(困惑)。

推荐答案

由于这是关于支持iOS版的多个版本,不包括(由NDA覆盖)任何iOS6的具体事物的pretty通用的问题,在这里不用我的回答:

Since this is a pretty generic question about supporting multiple versions of iOS and does not cover any iOS6 specific things (covered by NDA), here goes my answer:

如果我重新编译和使用的6.0部署目标构建一个应用程序,例如解决所有已知问题德precated方法等,当苹果发布的GM iOS6的,将任何构建编译和iOS5的设备的工作方式呢?

在原则上,是的,它会,只要你还没有使用任何iOS6的特有的功能或者是你是正确的(见回答你的第三个问题)。然而,针对实际设备的测试运行iOS5 / 4(或仿真器)几乎是强制性的,如果你想确保事情正常工作。

In principle, yes, it will, provided you have not used any iOS6-only feature or you did it properly (see the answer to your third question). However, testing against an actual device running iOS5/4 (or the simulator) is almost mandatory if you want to be sure that things work correctly.

还有一个机会,是当前较旧的iOS版本下工作会有些只是在iOS6的突破(这可以在案件发生添加了一些错误,而且在情况下,一些错误是固定的,它发生,你的code有这样的反驳前者的效应)它自己的错误。因此,测试是国王。 (感谢rsswtmr的这个评论)

There is also a chance that something that is currently working under an older iOS version will just break on iOS6 (this can happen in case some bugs were added, but also in case some bugs were fixed and it happens that your code had a bug of its own that countered the effect of the former). So, testing is the king. (Thanks to rsswtmr's comment about this).

我是不是应该将应用提交与5.0的部署目标或将那些无法在iOS6的运行?

您可以指定5.0,如果你的应用程序确实没有用任何iOS6的专用功能的部署目标(或者你做正确,后来读);换句话说,该设置不会中断与iOS6的兼容性;

You can specify a deployment target of 5.0 if your app does no use any iOS6-only feature (or you do it properly, read later); in other words, this setting will not break compatibility with iOS6;

如果,如果我使用新的iOS6​​的功能,我的部署目标只能是iOS6的?

是可以的,但它不是唯一的方式。

It can, but it is not the only way.

如果您指定的部署目标为iOS6的,那么你可以随意使用任何iOS6的特有的功能在你的应用程序没有问题。该应用程序商店技术人员将$ P $被安装在任何旧的设备上pvent您的应用程序,你会很安全。

If you specify your deployment target as iOS6, then you can freely use any iOS6-only feature in your app without concern. The app store mechanics will prevent your app from being installed on any older device and you will be safe.

在另一方面,如果您指定部署目标作为iOS5的或以上,那么你仍然可以使用任何iOS6的特有的功能在你的应用程序,但是你应该保卫iOS6的任何使用正确支持旧版iOS -only功能和iOS5的提供后备。

On the other hand, if you specify your deployment target as iOS5 or older, then you can still use any iOS6-only feature in your app, but you should properly support older versions of iOS by "guarding" any usage of iOS6-only features and providing a fallback for iOS5.

这意味着:说你要使用 featureA 仅适用于iOS6的;你可以做的是:

This means the following: say that you are going to use featureA only available on iOS6; what you can do is:


  1. 检查,看看是否可以使用此功能在运行时(例如类respondsToSelector等);

  1. check to see if the feature is available at runtime (e.g. class respondsToSelector, etc);

内的 #IFDEF 保护您的code,以便它只会在可能的情况下进行编译;

guard your code within an #ifdef so that it will be compiled only on when possible;

如果在1.检查会失败,走出定义的方式对老年人的iOS版本。

if the check at 1. will fail, define a way out for older iOS versions.

有一个在这个职位上的。

Have a look at this post on supporting multiple iOS versions.

这篇关于更新应用到iOS6的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 08:20