11

以前没有关于它的问题,所以我在这里问。

背景:

我在 Play 市场中有一个旧应用程序,有免费版和付费版。我创建了一个新版本,彻底改变并使用不同的支付系统(仅限免费应用 + 应用内购买,不再是付费版本:降低维护成本)。minSdkVersion也从 1.5 更改为 2.1。

由于所有这些差异,我决定上传一个新应用程序,而不仅仅是更新当前应用程序(即,不选择性地为 API 7+ 提供新的 apk --- 多个 APKs)。由于新的支付系统,这一点尤其重要,因为我不想强迫付费的老客户再次购买所有东西。我想让他们一个人呆着,像他们一样快乐(4.4/4.7 评分)。简而言之,我不想“强迫”人们做任何事情。在这种情况下,除了新应用提供的其他东西外,通过应用内购买再次购买相同的东西。

问题:

在向您解释了我的背景之后,它提出了一些明显的问题:

1. 我如何对 API 7+ 用户隐藏旧应用程序,同时仍然让所有当前 API 7+ 客户(即那些已经购买它的客户)可以看到它们?

我最关心的是付费应用程序。我正在考虑推出一个maxSdkVersion设置为 6 (SDK 2.0.1) 的新版本,有效地阻止新的 API 7+ 客户使用旧应用程序。但我担心当前 API 7+ 的客户会突然失去对应用程序的访问权限。这就提出了两个问题:

2. 他们能否持续更新应用程序?猜测“是”是否合理?

3. 即使上一个问题的答案是“是”,我仍然不清楚如果用户卸载应用程序,然后在市场中再次找到它会发生什么(不仅仅是更新)。考虑到同时应用过滤器要求发生变化,它会消失还是仍会出现在他的“已购买”应用列表下?

备注:我会上传一个测试应用程序来查看,但是AFAIK作者不允许购买他自己的应用程序(即使许可证的行为不同),所以我无法测试卸载过滤安装方案。




#######回复答案:#######

@活泼的:

我想你弄错了。我了解多个 APK,当然还有文档。这里的问题远不止于此。

另请注意,这maxSdkVersion已被弃用,因此当您发布新 APK 时,这会给您限制旧 APK 的提议带来一点麻烦。

谢谢你。我错过了。

多个 APK 提供了更简单的用户故事。

如果您这么说(除了我没有引用的其他内容),我认为您可能没有围绕这个问题。请跟我来:

  1. 我有n 个付费客户购买了我当前的 Pro 应用程序版本。
  2. 他们正在使用Pro 版本中的功能集X。
  3. 我现在决定实施应用内购买以提供功能集XY等等......
  4. 不幸的是,应用 API 7+ 进行了这些更改。
  5. 因此,正如您所建议的,我决定提供多个 APK。
  6. 现在,API 7+ 人群突然更新到我的应用程序的这个新版本。
  7. 因为他们更新到新的 APK,所以他们失去了他们的功能集X。他们现在需要再次购买X(从应用内购买菜单中)。我从他们那里拿走了他们已经拥有的东西,尽管是以一种“不那么闪亮”的方式。就像我说的:

你要么再次付钱给我,要么失去你已经拥有的东西。

你现在看到问题了吗?你明白为什么我被迫提供一个新的应用程序吗?还是我仍然没有得到你所说的(我认为没有)?

4

2 回答 2

1

这是一个未经尝试的想法供您考虑:

  • 升级您当前的应用内预付款应用程序以包含一个提供加密哈希的 ContentProvider,只有它知道如何生成该哈希以响应随机种子(以防止重放攻击)。

  • 发布使用应用内支付作为单独 APK 的新应用,并让它通过尝试访问刚刚描述的 ContentProvider 来检查用户系统上是否存在早期应用,将随机值传递给它并确认响应是正确的。如果收到这样的响应,则用户拥有旧应用程序,您可以在新应用程序中启用旧应用程序的相应功能,而无需任何应用内支付。

现在,如果您的一些用户跳过升级到为他们提供新 ContentProvider 的旧应用程序,而直接使用您的新应用程序,他们将被要求付款。但如果他们愿意,他们可以升级并再次运行新应用程序以获得验证。

这确实解决了您的问题。然而,它也有自己的问题。所以,把它放在你的工具箱里,看看它是否派上用场,或者与你以后可能设计的其他东西结合使用!

于 2012-05-30T05:18:02.090 回答
1

至少在不考虑多个 APK 的情况下,发布新应用而不是更新会对自己造成伤害,因为这会使升级现有付费用户变得复杂。

假设您只是将您的付费应用更新到 API 级别 7,将其价格降至 0 并添加应用内支付。API 级别 >=7 的设备将获得升级,而 API 级别 <=6 的设备将不会收到通知,不会在 Play(市场)中看到它,并且如果卸载将无法重新安装。这对你的问题 2 和 3 来说是“不”。

但现在可以实现多个 APK: http: //developer.android.com/guide/market/publishing/multiple-apks.html http://developer.android.com/training/multiple-apks/

针对您的问题,您可以根据 API 级别提供多个 APK:http: //developer.android.com/training/multiple-apks/api.html

这使您可以维护同一个应用程序的两个版本,按 API 级别分隔。因此,您的问题 1 的答案是,根据引用的文章实现多个 APK。

通过发布一个全新的应用程序,您对问题 2 的回答是“是”。通过实施多个 APK,问题 2 的答案也是“是”,从用户的角度来看,您的应用程序沿袭/升级故事要简单得多(技术上对您来说有点困难,在客户服务部门更容易)。另请注意,这maxSdkVersion已被弃用,因此当您发布新 APK 时,这会给您限制旧 APK 的提议带来一点麻烦。

问题 3 也是如此。通过发布新应用或实施多个 APK,您可以继续为用户可以找到和安装的旧 API 级别提供 APK。

多个 APK 提供了更简单的用户故事。发布一个新应用程序可以让您更轻松地区分应用程序,例如,如果您想说“看!现在格外闪亮!”

于 2012-04-13T11:17:20.347 回答