将相同应用的免费和付费版本发布到Android电子市场的选项和最佳做法

我在Android手机上安装了几个免费的应用程序,然后“升级”到付费的完整版本。 我做同样的第一个直觉就是创build两个具有相同包名的应用程序,以便安装一个覆盖另一个,但市场中的应用程序必须是唯一的包名称。

共享相同应用程序的免费和付费版本的代码和资源的一些模式和最佳实践,以及适用于此场景的任何命名约定或项目结构?

Related of "将相同应用的免费和付费版本发布到Android电子市场的选项和最佳做法"

直到谷歌支持许可的应用程序,这是我们为我们的MixZing应用程序(注意,这假设一个服务器执行许可证,但它不是一个必要的一部分,如果你愿意失去了大量的收入盗版):

  1. 创build一个“升级”应用程序,人们购买只是为了获得升级许可证。 它没有function,只是启动您的免费应用程序的主要活动(可选额外的,表明它正在从升级应用程序启动)。

  2. 一旦发现升级应用程序已经安装,您的免费应用程序会提示用户提供升级许可证密钥。 许可密钥是Google Checkout订单号。

  3. 当用户input时,请让服务器validation许可证。 您可以使用Checkout API来执行此操作。

一些注意事项和注意事项:

  • 由于市场的24小时取消政策,您必须准备好接受许可证,当他们第一次进入它(当然假设当时是一个有效的订单号),然后重置用户到免费版本,如果他们取消。

  • 你需要跟踪许可证,并确保人们不分享。

  • 我承认,在客户端和服务器上保持所有这些,获得状态机等等的工作比我们最初想象的要多。

  • 我们给用户三天的宽限期以input他们的许可证密钥,在此期间他们使用高级function。

  • 由于我们将许可证绑定到设备ID,所以在人们更换手机时需要一定程度的支持来传输许可证,刷新更改设备ID的ROM等等。当然,您不必每次都可以获得许可证,设备,并有一个自助服务选项来转让许可证将节省大量的工作,当我们完成。

总而言之,如果谷歌支持许可的应用程序,并节省开发人员和用户的麻烦,这将是非常好的!

每个应用程序必须有不同的包名称,否则它被认为是“升级”。 市场在这个规则上是非常黑白的(我发现了困难的方式)。

为自己说话,我喜欢以自由的forms在市场上看到一个应用程序,它始终保持可用,并始终免费。 它可能缺乏应用程序的付费版本中提供的某些function,我可能很乐意下载付费应用程序,一旦我熟悉了自由的一个。