4

我有一个要为 iPad 修改的 iPhone 应用程序。

我的问题是:该应用程序是为 iPhone OS 2.0 设计的,如果我为 iPad 制作它,我将不得不为 OS 3.2 设计它。

我无法更改 iPhone 版本,因为我的一些用户使用旧版本的 iPhone 可能无法运行该应用程序。

显然,我可以制作一个可以在 iPad/iPhone OS 3.2 和 iPhone/iPhone OS 2.0 上运行的混合应用程序,但这将是一个难以维护的地狱,需要进行许多 API 调用更改等。

哪种方法最好:混合版本还是 iPad 的单独代码分支?

4

4 回答 4

10

1) 分叉代码,但是...

2) 创建一个通用应用程序。

基本上,制作一个从现在开始只支持 OS3.2 的新版本。该单一版本可以包含更新的 iPhone 应用程序和新的 iPad 应用程序,让您在未来轻松地共同开发它们,并在它们之间重用视图控制器和模型。这就是 Apple 希望您这样做的方式。查看有关通用应用程序的文档。

于 2010-02-16T21:05:07.467 回答
8

分叉你的代码。无论如何,您可能会想要一个新的 UI 或新的图形代码来适应更大的屏幕,所以您实际上是在寻找一个使用大量现有类的“新”应用程序。

于 2010-02-16T20:46:37.427 回答
3

将您的 Base SDK 设置为 iPhone 3.2 设备。将您的 iPhone 部署目标设置为 2.0。调用 iPhone 3.2 API 时使用 AvailibilityMacros。然后为 iPad 创建不同的 UI 代码并制作通用应用程序。那是世界上最好的。除非该人拥有 iPhone 并且已经购买了您的应用程序,否则您将不会获得新的购买。如果您因为 iPad 版本而对获得更多收入更感兴趣(也许 iPad 版本具有更多功能?)那么您应该分叉您的代码,以便您可以为 iPad 应用程序设置不同的价格点。如果我理解正确,您可以始终将 fork 保留在同一个 xcode 项目中,这样您仍然可以使用共享的模型和控制器,并且在构建时只需选择要构建的目标。因此,作为开发人员,您可以两全其美。

根据 admob 统计数据: iPhone OS 统计数据,如果您的客户只是 iPhone,那么人们不在 3.0 < 3% 中。这对我来说是一个很小的数字,他们可以轻松地免费升级,所以我不会为了他们而阻止你的应用程序。也许您的应用程序也可能会说服更多人升级。现在如果你的应用支持 iPod Touch 那么你的目标市场仍然是 32% 2.X

于 2010-02-16T21:14:04.887 回答
0

您的应用程序是否有订阅组件(即在初次购买后让您赚钱)或服务合同?

如果答案是否定的,我会高度考虑将所有内容都移至 3.2 - 你真的想重新移植更改吗?仍在使用 2.0 操作系统的用户(可能是少数,甚至包括越狱者,因为 3.1 已经越狱了一段时间)不必升级到新版本。iPhone 应用程序的期望是新版本是免费的,而不是新版本是免费的并且总是在旧操作系统上运行。

作为一个让我的操作系统保持最新的用户,如果你花了很多时间来支持那些没有升级的用户,我真的会很沮丧。我觉得你的时间最好花在添加新功能上。

于 2010-02-16T20:50:50.037 回答