ios - 应用内购买和升级 iOS 应用

标签 ios in-app-purchase app-store-connect

在我的应用中说,我以 0.99 美元的价格出售猫,以 0.99 美元的价格出售狗,以 0.99 美元的价格出售鸟类。或者,您可以以 1.99 美元的折扣价购买全部 3 件。 “全部购买”将在 iTunes Connect 中拥有自己的产品 ID。

现在,假设我进行更新。我以 0.99 美元的价格添加了鱼,以 0.99 美元的价格添加了马。现在,要“全部购买”,我想收取更多费用,比如 2.99 美元。

那么,如果 A 不安装此更新怎么办?

当他们选择“全部购买”时,他们将被收取 2.99 美元的费用,因为我在 iTunesConnect 中提高了价格以反射(reflect)他们现在获得 5 套动物的事实。但是A人以5的价格只能得到3套,并不开心。

我是不是遗漏了什么,或者这只是一个有缺陷的场景?我看到的唯一选择是为每次更新创建不同的“全部购买”产品 ID,但这很快就会变得难以管理。除了强制更新之外,还有其他选择吗?

最佳答案

首先,我真的很讨厌强制更新的应用程序。持续唠叨也很糟糕——在一个应用程序中,它在每次启动时唠叨 三次(我认为他们在更新中修复了这个错误)。

如果购买的是非消耗品...

您正在做一些 IAP 并不真正支持的事情:目前没有类似的购买“专辑”的方法,它也将单个轨道标记为已拥有,这样它们就不会被无意中重新购买。

也就是说,

  • 如果在 1.0 中购买组合不应该在 1.1 中给你鱼+马,那么你需要一个新产品或一个消耗品。
  • 如果在 1.0 版中购买了猫+狗+鸟组合的用户应该在 1.1 版中获得猫+狗+鸟+鱼+马,那可能没问题。如果用户更新应用程序,它将自行修复。

我假设是后者:用户正在购买“所有动物”,这会在新版本的应用程序中自动提供新动物。

(并且您可以提醒用户更新——只是不要太烦人!)。

在这种情况下,我不会太担心——我的直觉是,手机太旧而无法更新的用户不太可能购买应用,更不用说 IAP,而有意避免更新的用户可能也不会购买 IAP。

提醒在这里可能会有用(“顺便说一下,这也会在 1.1 版中解锁 fish+horse”)— 只要确保您没有阻止 UI。

如果购买的是消耗品...

有两种可能。

  • 在用户更新应用程序之前价格会发生变化。用户的帐户会记入 cat+dog+bird。

    当用户更新应用程序时,您可能能够解决此问题,但似乎没有可靠的方法来判断用户购买了哪个版本的 IAP:您可以尝试存储 SKProduct.{price ,priceLocale} 以及收据,但不能保证您从商品中读取的价格与交易中支付的价格相同。好吧。

    价格似乎也不在交易收据中,根据 iOS In-App Purchase Programming Guide

  • 用户在价格变动前更新应用。用户可以以1.0的价格购买1.1的组合!

我认为您无法确保 IAP 价格变化与应用更新同步发生;试图强制升级可能只会让一些用户感到沮丧,因为升级还不可用。唯一安全的选择似乎是第二种,尽管它可能会损失一些收入。

但是,由于用户从根本上购买的是不同的东西,因此它们确实应该是不同的产品。

(在非消耗品的情况下,它们是“同一件事”,因为您得到的东西不取决于您购买的版本。)

关于ios - 应用内购买和升级 iOS 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16310397/

相关文章:

ios - Swift C 回调 - takeUnretainedValue 或 takeRetainedValue 用于 Swift 类指针

ios - 应用程序在 iPad 上运行,而其 iPhone-Only

iphone - 检查 iVar 的名称是否与 NSDictionary 键相关

iOS:矢量图形/图像

ios - 在 Xcode 5.1 中使用 XCTAssertEqual 比较 CGPoint 时出错

iphone - 应用内自动续订订阅

android - 适用于 Android 的替代应用内购买方法

ios - 如何使用iOS的In-App purchase购买用户生成的数字商品?

ios - 是否可以在 TestFlight 中同时激活内部和外部构建?

ios - 在 iTunes 连接中出现错误