我正在开发iOS 7的iOS应用程序,用户界面反映了这个iOS版本。但是,我想向其他人发布iOS,比如6或5。 因此,我会更改我的用户界面和目标iOS版本。我必须保存其他项目,这个修改?我如何为不同的iOS版本发布相同的应用程序?感谢并为这个愚蠢的问题感到抱歉,我没有找到任何关于它的事情。iOS发布到多个ios版本
回答
在您的应用程序设置部署目标到iOS 5
当谈到UI有这个苹果文档的读取上iOS 7 transition guide。
你已经阅读并了解它,然后你可以转移到实际创建你的用户界面。
当我创建了我的用户界面的基于IOS版本我有一个prepocessor宏设置
#define IOS_VERSION() [[UIDevice currentDevice] systemVersion];
这是我***-Prefix.pxh
文件中设置的,所以我可以在我的应用程序访问它。
然后我就可以像这样
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
方法调用,以及用一个简单的if statement
检查。像:
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或以另一种方式在一个之前完成,然后再继续。
你应该只有一个应用程序支持所有这些。
在您的XCode项目设置中会有一个名为deployment traget的设置。这应该是你的应用支持的Min OS版本。在你的情况下,它将是5.0。
即将到来的UI和其他功能的变化。您应该在运行时根据当前的操作系统版本进行操作。使用[[UIDevice currentDevice] systemVersion]
您可以根据此版本分别加载。
你应该在一个应用程序中做到这一点,它会运行在你允许的任何版本上。首先将您的部署目标设置为您想要支持的最旧版本。
通过使用约束或基于已知常量的UI尺寸,可以完成大多数与操作系统版本相关的任务。
需要处理的一个大问题是iOS 7中状态栏和透明条的显示方式存在差异。如果您使用Interface Builder,则可以使用XCode右侧栏上的“查看”检查器来设置应用的iOS6/7 Deltas,具体取决于所运行的版本。您还可以通过选择xib的根视图并打开“标识”检查器来预览IB中的差异。在Interface Builder Document下,将“View as”更改为要查看的操作系统版本。
如果一切都失败了,您可以在代码中测试操作系统版本以编写一个版本的自定义代码。
例如:
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
//ios 6 code
} else {
//ios 7 code
}
如果你想使用完全不同的设计,这是由您绘制
那么,我可以将部署目标放到iOS 5中,并且设计会根据使用我的应用程序的设备而有所不同? –
是的,原生控件将针对操作系统版本进行适当的定义。 – Ike
- 1. iOS发布版本列表
- 2. iOS并发/版本分布
- 3. 支持多个iOS版本
- 4. iOS移动版本调试与发布
- 5. 代码签名iOS发布版本
- 6. 阵营机iOS发布版本崩溃
- 7. iOS开发人员版本与发布版本
- 8. ios免费发布beta版
- 9. 恢复iOS应用发布到旧版本
- 10. ios,发布不同版本的每个设备
- 11. 从iOS发布数据到PHP脚本
- 12. 在.travis.yml中定位多个iOS版本
- 13. Ionic:管理多个iOS版本
- 14. 如何支持多个iOS版本?
- 15. 发布版本显示多个发射
- 16. iOS模拟器iOS版本
- 17. 的iOS发射的iOS音乐库到多个iOS设备
- 18. Facebook的iOS版SDK发布的第
- 19. iOS版SDK发布的照片与
- 20. 我在哪里发布fb:explicit_shared iOS版sdk
- 21. 发布在iOS版的Facebook墙上
- 22. 脚本我的iOS应用程序的发布版本?
- 23. 从iOS发布JSON到ASP.NET
- 24. “KashodhaniPhone”上的iOS版本与此iOS SDK的此安装版本不匹配任何iOS开发版本。
- 25. UIPopover发布iOS
- 26. 将单个iOS消息发布到多个AWS SNS主题
- 27. 使用多个窗口的iOS完整版/精简版版本
- 28. 不同版本的iOS需要不同的iOS空中发布方法吗?
- 29. 开发iOS版PC
- 30. 推送通知不适用于ios上的发布版本
- 你需要两个不同的故事板。原生控件在不同的版本上看起来不同,因此您不需要做任何事情就可以拥有两种不同的本机设计 – medvedNick
因此,如果我在屏幕上使用本机设计,则可以将其设置为iOS 5版本,并在执行应用程序时在iOS 7设备上,界面将自动“重新定义”? –
是的。你可以尝试在模拟器上。这里是使用iOS 6和iOS 7上的SAME原生控件的[图片](http://ukrainianiphone.com/wp-content/uploads/2013/06/ios7-vs-ios6_co.design_6-630x475.jpg)。但你最好说,“在iOS 5上它将被重新定义” – medvedNick