Options and best practices to release free and paid version of the same app to Android Market
我在Android手机上安装了几个免费应用程序,然后"升级"到付费完整版。 我做同样的第一直觉是创建两个具有相同包名的应用程序,以便安装一个覆盖另一个,但市场中的应用必须是包名称唯一的。
为同一应用程序的免费和付费版本以及适用于此方案的任何命名约定或项目结构共享代码和资源的一些模式和最佳实践是什么?
在谷歌推出支持许可应用程序之前,这就是我们为我们的MixZing应用程序所做的事情(请注意,这假设服务器执行许可证,但如果您愿意失去大量收入,它不是流程的必要部分盗版):
创建一个人们购买的"升级"应用程序,以获得升级许可证。它没有任何功能,只需启动免费应用程序的主要活动(可选择添加一个表示它是从升级应用程序启动的)。
让用户看到已安装升级应用程序后,您的免费应用程序会提示用户提供升级许可证密钥。许可证密钥是Google Checkout订单号。
让用户在输入许可证时验证许可证。您可以使用Checkout API执行此操作。
一些注意事项和警告:
-
由于市场的24小时取消政策,您必须准备好在第一次进入时接受许可(当然假设它是有效的订单号),然后如果用户取消则将用户重置为免费版。
-
您需要跟踪许可证并确保人们不共享许可证。
-
我承认,在客户端和服务器上跟踪所有这些,使状态机正确等等比我们最初设想的更多。
-
我们为用户提供三天的宽限期来输入他们的许可证密钥,在此期间他们使用高级功能。
-
由于我们将许可证与设备ID绑定在一起,因此当人们更换手机,刷新更改设备ID的ROM等时,转移许可证需要相当多的支持。当然,您不必为了获得许可证设备,并且具有自助服务选项来转移许可证将在我们完成后节省大量工作。
总而言之,如果谷歌支持许可应用程序并为开发人员和用户节省所有这些麻烦,那将是非常好的!
每个应用程序必须具有不同的包名称,否则它被视为"升级"。市场对这条规则非常黑白(我发现了很难)。
对我自己说,我喜欢以自由形式在市场上看到一个应用程序,它始终可用且始终免费。它可能缺少应用程序付费版本中显示的一些功能,我可能很乐意下载付费应用程序,一旦我熟悉了免费的应用程序。