问题标签 [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 投票
1 回答
272 浏览

ios - SwiftyStoreKit 和 AppStore Connect 版主的应用内购买问题

我是应用内购买和 SwiftyStoreKit 的新手。

我在我的应用中进行了应用内购买并将其发送给审核。

我的申请版主拒绝并写了原因:

我们发现您的应用内购买产品在通过 Wi-Fi 运行 iOS 14.1 的 iPhone 和 iPad 上审查时出现一个或多个错误。

具体来说,您应用的应用内购买不显示应用的价格。此外,经过进一步审查,我们发现您的应用不允许用户购买应用内购买。

下一步

在您的服务器上验证收据时,您的服务器需要能够处理从 Apple 测试环境获取其收据的生产签名应用程序。推荐的方法是让您的生产服务器始终首先根据生产 App Store 验证收据。如果验证失败并显示错误代码“生产中使用的沙盒收据”,则应改为针对测试环境进行验证。

价格未显示可能是因为应用程序收到了答案代码:“skerrordomain code=0”或类似的东西。或者因为苹果服务器返回了 0 个产品。

也就是说,当 ViewController 启动时,应用程序从 Apple 服务器请求产品的价格,然后将其写入按钮。

我不知道到底是什么问题,因为在我的本地设备上购买是与沙盒用户一起工作的。在模拟器中我收到一个错误:“skerrordomain code=0”。

这是一个代码示例:

结果我得到了retrieveProducts。在本地设备上,所有 3 种产品都来了,在模拟器中我得到 0 和错误。

0 投票
1 回答
602 浏览

ios - “SwiftyStoreKit.completeTransactions() 应该只在应用启动时调用一次。”

我将 SwiftyStoreKit 与 SwiftUI 和 App 而不是 App Delegate 一起使用,并在控制台中收到此消息:“SwiftyStoreKit.completeTransactions() 应仅在应用启动时调用一次。” 我相信它,因为我在下面的块中调用了 completeTransactions,我可以从 Print 语句中看到,它比以前调用 AppDelegate 的 didFinishLaunching 更频繁。我关注此消息的原因是我在尝试购买时因崩溃而被 App Review 拒绝。我还应该在哪里调用 completeTransactions?

0 投票
1 回答
223 浏览

macos - dyld:库未加载:@rpath/SwiftyStoreKit.framework/Versions/A/SwiftyStoreKit - macCatalyst

运行失败并出现以下错误mac Catalyst

这是我的podfile,是的,它包含更多其他的豆荚。比SwiftyStoreKit。我可以在没有 的情况下运行SwiftyStoreKit,但如果我添加然后得到这个错误和断点

我正在使用此工具排除 Mac 催化剂的 pod:https ://github.com/fermoya/cocoapods-catalyst-support

使用

Xcode:12.4 macOS:大苏尔 11.2.2

0 投票
0 回答
41 浏览

swift - 使用 IAP 订阅的正确方法

我正在尝试使用SwiftyStoreKit并面临一些问题来实施 IAP 订阅,我什么时候必须验证收据,如何知道订阅何时有效以及何时刷新它。我没有使用任何服务器,只是设备上的本地服务器。

所以,首先我要求使用的产品SwiftyStoreKit.retrieveProductsInfo,而不是向用户展示产品。我不知道订阅的正确方案是什么,我应该先使用验证收据SwiftyStoreKit.verifyReceiptAppleReceiptValidator然后再询问产品吗?如何知道订阅是否仍然有效?

我面临的另一个问题是,当尝试使用 恢复购买时SwiftyStoreKit.restorePurchases,响应成功并带有一组Purchase对象,但是在打印它们时,我得到很多使用相同 ProductId 和相同日期的对象,恢复 transactionId 是不同的。我怎样才能确定哪些是活跃的?

当用户取消订阅或恢复购买时,我该如何处理?我怎么知道又不给用户奖励钱呢?(每月 10k 硬币)

订阅会移除应用中的所有广告,每个订阅月给用户 10k 金币。

0 投票
1 回答
483 浏览

ios - 使用 SwiftyStoreKit 自动更新

SwiftyStoreKit 对我来说是一个非常困难的产品,因为将近一周,我在 StackOverflow、YouTube 和 Google 中到处搜索答案。由于我正在研究 Auto-Renewable,因此我找不到任何答案,并且我试图找出用户是否取消订阅或过期,应用程序会要求重新订阅。在测试期间,购买效果很好,但我需要弄清楚应用程序如何知道订阅是否过期。每次我尝试验证时,我的验证收据总是会返回以下错误消息。我做错了什么?

这是我的顶级代码:

购买时带有按钮的代码

AppDelegate.swift

StoreKitManager.swift

0 投票
0 回答
37 浏览

ios - 使用 SwiftyStoreKit 获得无效的产品标识符错误 InApp 购买

SwiftyStoreKit在我的应用程序中使用 InApp 购买。我将我的应用程序上传到了 TestFlight。每当我从 TestFlight 安装应用程序并尝试购买包时,retrieveProductsInfo给我的结果为零retrievedProducts并且它说产品 ID 无效。我确认满足以下所有条件

  • AppStore connect 和 Project 中使用的捆绑标识符相同,并且是启用了 InApp 购买功能的显式标识符
  • AppStore 中的产品 id 连接匹配我在代码中用于检索产品的那个
  • 产品处于“已结清销售”状态
  • 与财务相关的所有信息均已填写。比如联系信息、银行信息和税务信息。

请让我知道我在这里缺少什么。

谢谢。

0 投票
2 回答
46 浏览

ios - SwiftyStoreKit IAP 购买但启动后不记得它的设置

我正在尝试在我的游戏中集成一个非常基本的单一 IAP,在这里我从我的GameScene

这些方法被正确调用,并在里面引用这些GameViewController.swift

测试 IAP 通过,它从应用商店获取正确的信息,我使用我的沙盒详细信息进行购买,它通过成功的购买消息正确通过。但是,bannerView并没有隐藏,更重要的是,再次重新启动游戏时,一切都被遗忘了,游戏认为没有购买任何东西。我猜它必须是某种缺少的检查。

我有这个在我的viewDidLoad

它总是显示print("Not purchased, so show the ads")

用于购买的IAPHelper文件是;

并且日志确实 print("OK It's purchased")在首次购买后显示 - 所以我很难看到出了什么问题。

0 投票
0 回答
28 浏览

ios - 需要了解如何为我的应用实施自动续订订阅

我正在开发需要实现自动更新订阅的应用程序

基本上,我还没有进行应用内购买,所以我不知道如何开始,我有几个问题以及根据我的应用要求让我知道需要做什么

我在开发者帐户上创建了每月和每年的应用内购买计划

现在让我知道购买完成后需要做什么?

我什么时候需要检查订阅是否有效?(在打开应用程序或单击我们提供服务的按钮时)

我应该何时验证订阅或收据?

给我这个想法

0 投票
1 回答
34 浏览

swift - 是否可以在 xCode 设置中更改应用商店产品的 productId?

我面临一个关于应用内购买的问题。我尝试了很多搜索,但最终在这里寻求帮助。我的客户要求我更改 ios 的 bundleId 并更改用于发布应用程序的帐户。因此,我必须在 appStoreConnect 中创建一个新应用来实现应用内购买价格。问题是我已经完成了与应用内购买相关的所有必要步骤,但仍未在我的代码中获取产品详细信息。我也在使用 SwiftyStoreKit。我不知道我哪里错了。任何帮助将不胜感激。谢谢。

0 投票
1 回答
38 浏览

storekit - 如何在 iOS / StoreKit 2 中通过订阅从付费版本更改为免费版本

多年来,我在应用商店中有一个现有的应用。用户必须付费才能下载该应用程序。现在我想通过实施应用内购买来转向免费增值模式。我想对我的应用程序的以前购买者公平。

我搜索并阅读了很多关于这个主题的内容,但它仍然让我感到害怕,主要是因为它总是归结为解析原始交易收据并“解析”诸如“原始应用程序版本字段”之类的加密内容......我是如此希望,新的 StoreKit 2 为这个非常常见的问题提供了更多选择,但找不到。

所以我在这里问: StoreKit 2中是否有更简单的方法可以从原始购买中检索更多“可读”数据?

任何提示将不胜感激。