0

我已经为 iPhone 和 iPad 开发应用程序已经有一段时间了,我正在为每个版本的设备开发每个应用程序,因为我担心它不会在没有视网膜显示器的较低版本上运行。

有没有办法开发一个可以在所有版本的设备上运行的应用程序?因为现在新的 iPhone 和 iPad 都带有 iOS6。

4

4 回答 4

1

是的,旧版本的应用程序将适用于新的 iOS6。但是,为旧版本创建的应用程序将被装箱。我会说先为3GS创建一个应用程序并测试它的兼容性。您可能会错过一些新设备上的基本功能。我的建议是创建一个通用应用程序。

于 2012-09-13T01:52:06.643 回答
0

较旧的应用程序将在新的 iOS6 上正常运行。由于新的 iphone5 具有高纵横比,旧的应用程序将被黑框化,即以黑色边框运行。有关更多信息,您可以访问http://techcrunch.com/2012/09/12/first-party-apple-apps-optimized-for-iphone-5-display-existing-apps-will-run-letterboxed/

于 2012-09-13T00:03:16.137 回答
0

通用应用程序是二进制文件将在 iPad 和 iPhone 上运行的应用程序。客户为一台设备购买它,并且可以自动在两台设备上运行它。拥有两个不同版本的应用程序(一个用于 iPhone,另一个用于 iPad)可能是出于商业原因。从客户的角度来看,最好只买一次。一些游戏开发者认为这是合理的,因为必须为更大尺寸的 iPad 重做图形,这可能需要很多时间。

关于视网膜显示的问题与您在应用程序中包含的资产有关。通常对于基于 UIKit 的应用程序,通过将“@2x.png”附加到文件名表示该资产将在支持 Retina 的设备上使用。否则,设备将自动将正常大小的图像大小加倍。此页面上有更多信息:http: //developer.apple.com/library/ios/#qa/qa1686/_index.html

当您提到“设备的所有版本”时,另一个问题与 iOS 的版本有关。如果您不使用较新的框架,您通常可以让应用程序轻松向后兼容。您可以编写一个 App 来检查它正在运行的 iOS 版本,然后动态链接到这些库并在运行时执行此操作,然后不支持旧版本上不可用的某些功能。

于 2012-09-13T00:03:18.203 回答
0

您可以选择“最小公分母”,或者...

以最新最好的设备为目标,并准备编写代码以选择性地禁用功能,支持多种分辨率和指令集,并接受这将带来的大量测试。

琐碎的最小公分母是在针对 iPhone 1 的现代 xcode 上编译的应用程序。它将在所有后续平台上运行,但会有以下“问题”:

  • iPhone5、iPad 界面周围的黑框或条。
  • 所有 iPad 和 iPhone 4+ 上的像素外观图形
  • 没有相机支持
  • 不支持 GPS
  • 没有指南针支持
  • 没有多任务处理或推送通知
  • 没有内置的快速电子邮件/消息支持
  • 没有社交网络支持
  • 没有游戏中心支持
  • 等 - 查看任何苹果功能列表。

如果您想支持上述任何一项,您可以随时测试设备是否支持特定的 API、功能或分辨率——Apple 的开发人员文档对此非常有帮助。


注意:您不必选择 iPhone 1 作为最低公分母 - 3GS 也是一个不错的选择,因为它直到最近才开始销售。

于 2012-09-13T00:41:07.557 回答