首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS发布到多个ios版本

iOS发布到多个ios版本
EN

Stack Overflow用户
提问于 2013-12-10 15:09:02
回答 3查看 152关注 0票数 0

我正在为iOS 7开发一个iOS应用程序,UI反映了这个iOS版本。但是,我想发布给其他iOS系统,比如6或5。因此,我将更改我的UI和目标iOS版本。我必须保存其他项目,与此修改?我将如何为不同的iOS版本发布相同的应用?谢谢,很抱歉这个愚蠢的问题,我什么也没发现。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-10 15:18:33

在您的应用程序中,将部署目标设置为iOS 5。

当涉及到UI时,请在iOS 7过渡指南上阅读此Apple。

那些你已经读过并且理解了它,然后你可以转移到实际创建你的UI。

当我创建了基于iOS版本的UI时,我有一个前置宏集

代码语言:javascript
复制
#define IOS_VERSION() [[UIDevice currentDevice] systemVersion];

这是设置在我的***-Prefix.pxh文件,以便我可以访问它在我的整个应用程序。

然后我就可以用这样一个简单的if statement来检查这个

代码语言:javascript
复制
if(IOS_VERSION => 7.0) {
    // Do our iOS 7 stuff here
} else {
    // Do everything else, you could add else if to check 6.0, 5.0 even 4.0
}

还记得在if statements中包装一些方法调用。比如:

代码语言:javascript
复制
if([object respondsToSelector:@selector(setTitle:forState)]) {
    // object being whatever object you are wanting to work on UIButton, UILabel, UIView. 
    // The reason for this is some methods will be in iOS 7 or even 6 but not in iOS 5
    // so if you called them methods you will received unrecognised selector excpetion.
}

您也可以使用接口构建来做一些事情,请参阅我为如何在接口构建器上提供的链接。

您的设计将根据iOS版本而有所不同。如果您在iOS 7上运行,它将具有新的平面UI外观,而如果您构建在其他iOS上,它将具有旧的外观。当我们转向新的外观时,我们在应用程序中没有什么不同之处,但我们确实需要修复一些东西。我建议先为iOS 5和6构建,然后再构建7,或者用另一种方式构建它,然后再继续前进。

票数 1
EN

Stack Overflow用户

发布于 2013-12-10 15:22:02

您应该在一个应用程序中这样做,它将在您允许的任何版本上运行。首先,将部署目标设置为要支持的最老版本。

通过使用约束或基于已知常量的UI维度,您可以完成大多数依赖于OS版本的任务。

要处理的一个大问题是iOS 7中状态栏和透明条的显示方式不同。如果您使用的是Interface,您可以使用XCode中右侧栏上的View检查器来设置iOS6 6/7 Deltas,这些Deltas将根据运行的版本而定。还可以通过选择xib的根视图和打开标识检查器来预览IB中的差异。在Interface文档下,将"View“更改为您希望看到的OS版本。

如果所有这些都失败了,您可以在代码中测试OS版本,以便为版本编写自定义代码。

例如:

代码语言:javascript
复制
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
    //ios 6 code        

} else {
    //ios 7 code

}
票数 3
EN

Stack Overflow用户

发布于 2013-12-10 15:20:17

你应该只有一个应用程序支持所有这些。

在您的XCode项目设置中,将有一个名为deployment的设置。这应该是您的应用程序支持的Min OS版本。在您的例子中,它将是5.0。

进入UI和其他功能更改。您应该在基于当前OS版本的运行时执行这些操作。利用[[UIDevice currentDevice] systemVersion],您可以根据这个版本分别加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20497973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档