在马拉松式的编码会议之后,我添加了太多代码而没有跟踪所有内容,我现在有一个可能有一些 iOS 5.0 和 5.1 特定枚举、调用和框架的应用程序,但是,我希望我的应用程序支持 iOS 回到 4.3 .
我希望有一种简单的方法可以将 Xcode 设置为编译,就好像它正在为 iOS 4.3 编译一样,这样我就会得到所有需要调整和/或替代编码的违规代码的错误,对于较旧的IOS。
我想我可以通过使用编译器选项来实现:
-D__IPHONE_OS_VERSION_MAX_ALLOWED=__IPHONE_4_3
但这最终会在系统头文件中产生错误,而不是我的代码。
鉴于大多数枚举和框架的可用性都包含在头文件中,我不得不认为有一种简单的方法可以满足我的需要。
有没有人设法在不使用旧 SDK 下载旧 Xcode 的情况下做到这一点?在那里我可能会遇到在 Lion 下无法正常运行的 Xcode 问题(这就是我正在运行的)。
更新:似乎我无法在 Lion 上安装 Xcode 3.2.6。我现在必须找到一台 Snow Leopard Mac,除非我找到使用编译器选项或强制 Xcode 使用旧 SDK 的方法......
以下是@mattjgalloway 的回答为我所做的示例:
路明应用群
/Users/mz/Dev/Working/Lumin/Lumin/MyUIScreen.m
- 'brightness' 已被弃用:太新了!
- 'brightness' 已被弃用:太新了!
- 'brightness' 已被弃用:太新了!
- 'brightness' 已被弃用:太新了!
/Users/mz/Dev/Working/Lumin/Lumin/LuminViewController+Share.m
- 'TWTweetComposeViewController' 已被弃用:太新了!
- 'TWTweetComposeViewController' 已被弃用:太新了!
- 'TWTweetComposeViewController' 已被弃用:太新了!
/Users/mz/Dev/Working/Lumin/Lumin/LuminViewController.m
- 'scrollView' 已被弃用:太新了!
- 'connectionWithMediaType:' 已弃用:太新了!
- 'connectionWithMediaType:' 已弃用:太新了!
- 'AVCaptureDeviceSubjectAreaDidChangeNotification' 已弃用:太新了!
- 'setSubjectAreaChangeMonitoringEnabled:' 已弃用:太新了!
非常好。
我将以下内容放在项目的 .pch 文件中,并计划对所有项目都这样做:
#if DEBUG
#define __IPHONE_OS_VERSION_SOFT_MAX_REQUIRED __IPHONE_OS_VERSION_MIN_REQUIRED
#import "MJGAvailability.h"
#endif
对于任何项目,我现在都会根据我所针对的最早的 iOS 自动监视 SDK 问题。虽然我仍然可能需要担心 SDK 更改,但至少我知道大多数框架添加在旧版 iOS 版本中是不可用的。