iPhone - 如何确定现有项目的部署目标iOS版本

4

我有一个庞大的iOS项目,默认情况下,它的目标是iOS 5.0。但我很确定它也符合4.?.?标准。

我该如何知道我的应用程序可以针对的最低iOS版本,而不必逐个方法/常量/...地将整个代码与iOS文档进行比较,以了解其引入的iOS版本,并最终知道我可以针对的最低iOS版本?这需要几周时间!

(XCode并没有帮助...将iOS目标设置为低于iOS 5的版本时,编译时从不会出现任何警告或错误,因此我不知道例如在将目标版本设置为iOS 4.1时,哪些方法仅适用于iOS 4.2...)


无法理解你想要什么? - Hardik Shah
我认为你应该将它设置为3.2,这对于所有设备来说足够了,不会出现任何警告,是吗? - Hardik Shah
@HardikShah:这并不是因为我将最小目标版本设置为3.2,就意味着我的代码符合3.2的要求。 - Oliver
Oliver,请看下面我的回答。除非你有一台运行3.2版本的设备进行测试,否则你应该针对4.3版本及以上的操作系统进行开发,因为模拟器只支持4.3及以上版本的测试。 - Nick Lockwood
2个回答

2
如果您使用了任何iOS 5的API,那么当这些代码尝试在iOS 4.x上执行时,应用程序将崩溃,除非您加入一些代码来检查方法是否可用,然后再调用它们(在文档中查找“respondsToSelector:”)。
将您的部署目标设置为iOS 4.3。在模拟器中,在左上角的下拉菜单中,它应该提供iOS 5或4.3模拟器的选择。选择4.3,然后仔细测试您的应用程序,如果它崩溃了,您可以检查控制台日志以查找有问题的API调用,然后想办法解决它。
如果在构建下拉菜单中看不到4.3,则必须仍然将5.0作为您的部署目标。
我建议不要将部署目标设置得比4.3更早,除非您有一个运行较早操作系统的测试设备可以使用。
所以,您的问题的答案是,部署目标应该是您能够测试应用程序的最早版本的iOS(无论是使用模拟器还是实际设备),除非您依赖于较新的操作系统版本中的API并且无法解决这些问题。

好主意,但是如果应用程序具有需要设备才能运行的功能,例如相机、陀螺仪、加速度计、GPS等,那么如何使应用程序运行呢?该应用程序具有所有这些功能。 - Oliver
@Oliver,那是一个不同的问题,因为它们取决于硬件,而不是iOS版本。有办法检查你提到的所有这些东西。你可能希望在应用程序启动时检查它们。 - AnthonyBlake
@Oliver,你可以查看相机、加速度计等API的文档,并确保你没有使用任何iOS5功能;或者你可以为测试购买第二部手机,并在其上安装早期版本的iOS。后一种选择是专业人士的做法(我有一套包括五部iPhone、iPod Touch和iPad在内的设备,运行着不同的操作系统),但如果你刚开始作为开发人员,这是一个昂贵的选择。 - Nick Lockwood
您可以在apple.com的Apple翻新商店相对便宜地购买翻新的iPod Touch第四代。它可能会预装iOS 4,或者如果没有,您可以将其降级。它将让您测试相机、加速度计等功能,虽然它没有GPS,但位置API仍将以相同的方式工作(在触摸屏上使用Skyhook而不是GPS)。 - Nick Lockwood

0
在您的目标构建设置中,您可以搜索部署目标。这将为您提供有关此应用程序开发的 iOS 的最小版本的信息。

1
不,那只是告诉应用程序应该在哪个最低版本上运行,即使这并不是真的。 - Oliver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接