问题标签 [swiftystorekit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
16910 浏览

ios - 检查自动续订订阅是否仍然有效

我想在打开应用程序时检查自动续订订阅状态。

这是为了确保用户仍然订阅该服务。我如何实现这一目标?

有什么想法吗?谢谢

PS:我正在使用SwiftyStoreKit

0 投票
1 回答
1036 浏览

ios - 之后恢复自动续订订阅

我们正在使用自动更新订阅,除了一个边缘情况外,它工作正常。

如果用户将他们的 iPhone 重置为出厂设置,他们就无法在我们的应用程序中恢复自动续订订阅(或者看起来,我们现在只有两个这样的案例)。

我们正在使用 SwiftyStoreKit,但我认为我们这边存在逻辑错误。

现在我们正在以这种方式恢复购买:

我的假设是重置后我们没有任何收据要验证,我必须直接检索它。在设备上检查有点困难,因为老实说,我没有真正的测试设备,对我来说很容易杀死。

所以我想添加类似的东西(在尝试验证之前手动刷新收据):

这有什么意义吗?会有帮助吗?

0 投票
0 回答
291 浏览

swift - 应用内购买的极长延迟

我正在使用 SwiftyStoreKit,最近我在应用内购买时遇到了极长的延迟(比如几分钟)。

我经常得到类似的东西:

收据验证失败:networkError(Error Domain=NSURLErrorDomain Code=-1001 "请求超时。" UserInfo={NSUnderlyingError=0x1c0245700 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey =4}}, NSErrorFailingURLStringKey= https://sandbox.itunes.apple.com/verifyReceipt , NSErrorFailingURLKey= https://sandbox.itunes.apple.com/verifyReceipt , _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=请求时间到。})

显然,在没有 SwiftyStoreKit 的情况下重新创建所有这些并不是一件容易的事,所以我想事先问一下——是否有其他人在沙盒/生产中遇到过类似的情况,或者如果我从头开始,那么所有这些延迟很可能只是消失?

0 投票
1 回答
869 浏览

ios - SwiftyStoreKit how to check if a user purchased a product?

How can I use SwiftyStoreKit to check if a user purchased a product with product ID com.X.X? I want to use the SwiftyStoreKit code to check if a user already purchased a product using inapp purchase system? I want to do that to determine whether I should show them a feature. How can I use Apple's inapp purchase system to check if a user already purchased a product? using swift

0 投票
0 回答
323 浏览

ios - In App Purchase Got SKErrorDomain Code=0 - 'Cannot connect Itunes store' - 当在提示信号中单击取消时

我得到以下错误

SKErrorDomain Code=0 - '无法连接 Itunes 商店'

当在提示登录中单击取消选项时。如果我使用现有的苹果 ID 或创建新的苹果 ID,它会很好地工作。请帮助:( 提示图片

0 投票
0 回答
654 浏览

swift - 尝试在应用启动时使用 application(:didFinishLaunchingWithOptions:) 调用函数

我正在使用 SwiftyStoreKit Cocoapods 进行应用内购买。GitHub 页面提到 Apple 建议如何在应用程序启动后立即注册事务观察器。Apple 表示:在启动时添加应用程序的观察者可确保它在应用程序的所有启动期间持续存在,从而允许您的应用程序接收所有支付队列通知。

这是链接:https ://github.com/bizz84/SwiftyStoreKit

SwiftyStoreKit 通过completeTransactions()在应用启动时调用来支持这一点:

GitHub 页面继续说:请注意,它completeTransactions()只能在您的代码中调用一次,在application(:didFinishLaunchingWithOptions:).

我无法弄清楚如何实现这一点。有人可以帮忙吗?

0 投票
0 回答
274 浏览

ios - Apple 错误地将应用内购买视为已订阅

我正在为一个已经上线的应用程序进行应用程序内购买。应用程序名称是假设 TestApp,我在其中实现了应用程序购买,并假设用户从他的 iTunes id(比如说 itunes@example.com)订阅自动续订订阅以购买 ID 为“com.subscription.example”的自动续订订阅他的应用程序通过他的个人帐户 (personal@gmail.com) 登录。

他的 iTunes 电子邮件 ID 和个人电子邮件 ID 在这里是不同的。一切正常,付款完成,然后我相应地更新并点击相应的 API。

现在的问题:如果他从他朋友的电子邮件 ID 登录他的应用程序,假设“friend@gmail.com”并使用他的相同苹果 ID(即 itunes@example.com)为他购买订阅(“com.subscription.example”) ) 在购买时,Apple 会说该产品已经订阅,并将进入购买支付功能的成功块,然后所有 API 等都会被相应地击中,因此新订阅将在他朋友的帐户上激活,无需任何付款。可以做什么?

这是我用于购买支付的功能(我使用的是swiftystorekit),它只需要购买ID作为参数。

0 投票
1 回答
2012 浏览

swift - SwiftyStoreKit。如何在不输入密码的情况下验证订阅?

我在我的应用程序中使用SwiftyStoreKit。我也有一个auto-renewable subscription,其中购买正常。

auto-renewable subscription购买,当用户启动应用程序时,它会使用verifyReceipt. 检查时,通常会出现一个弹出窗口,询问用户的 Apple ID 和密码。这种行为是不受欢迎的。

如果 a 取消 Apple ID 登录或使用不正确的凭据进行身份验证,验证将引发 error Cannot connect to iTunes Store,并且用户随后无法使用该应用程序。

我的问题:

  • 验证时如何禁用 Apple ID 身份验证verifyReceipt

  • SwiftyStoreKit,这还没有实现。我们如何在不连接服务器但使用的情况下离线验证订阅SwiftyStoreKit?有没有可以做到这一点并且易于连接的库?

0 投票
1 回答
848 浏览

ios - 如何在 SwiftyStorekit 中恢复老用户的订阅?

在第一个版本中,我使用了 3 个产品 ID

  1. 月刊
  2. 三个月
  3. 和年度订阅

在我的新版本应用程序中,有 2 个产品 ID,它们是全新的

所以我的问题是,对于已经使用旧产品 ID 购买订阅的老用户,他将如何能够使用新版本进行恢复。

目前,我正在使用下面的代码来恢复购买,但它不会恢复旧的产品 ID。

0 投票
0 回答
1133 浏览

ios - iOS - SKErrorDomain 4

我们应用程序的一些新用户SKErrorDomain 4在购买我们的商品时收到错误。我无法重现该错误,也无法在互联网上找到任何有用的信息。在苹果的论坛中,一位用户说 Itunes 服务器已关闭,但这听起来很荒谬。我们将SwiftyStoreKit用于我们的 IAP。这是购买产品的代码:

如您所见,我返回带有本地化描述的错误。我们在本地警报弹出窗口中打印出我们的错误,这就是用户得到的(在我们的例子中是德国用户):

skerrordomain4

有人可以给我任何建议如何在这里进行吗?此外,我在另一个论坛上读到的付款数据无效,也不会发生错误。我们向受影响的用户澄清了这一点。他确认他这边的一切都是正确的。