问题标签 [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 回答
205 浏览

swift - 检索产品本地化价格 - 无效函数中的意外非无效返回值

我正在使用SwiftyStoreKit在我的项目中实现 iAP。我有一个用户可以购买和恢复的自动更新订阅。这似乎工作正常,但是在检索要显示到 UI 的产品信息时遇到问题。

我正在尝试显示本地化价格,返回的价格是年度成本,因此我需要将该数字除以 12 以将其显示为每月成本。但是,当获取价格并尝试恢复价值时,我收到以下错误:

void 函数中出现意外的非 void 返回值

设置按钮值

检索价格

0 投票
1 回答
585 浏览

ios - priceLocale 在访问时抛出 EXC_BREAKPOINT

我们在我们的应用程序上使用介绍性价格。我们有一个问题只能在我们的两个 QA 设备之一上重现,即法国 App Store 上的 iPhone 6S (11.4.1)。另一个是 iPhone 7(带有法语 App Store 的 12.0),该应用程序没有崩溃。

我们正在使用这个基于 SwiftyStoreKit 提供的 SKProduct 扩展的扩展:

像这样使用:

调试时我们发现 priceLocale 负责抛出EXC_BREAKPOINT.

编辑可以链接到这个:https ://bugs.swift.org/browse/SR-7922?attachmentOrder=desc但奇怪的是它可以在我们的 iPhone 7 而不是 iPhone 6s 上工作

0 投票
1 回答
114 浏览

swift - 审查期间的应用内购买无效标识符(在开发中工作正常)

我正在开发一个具有非消耗性产品的应用程序。我已经使用多个沙盒帐户进行了测试,并且在开发过程中一切正常。但是在应用审核期间,productid 被返回为无效,我无法通过审核。在我提交应用程序以供审核之前,我确保非消耗品处于“等待审核”状态。我在 xcode 中也有最新的配置文件设置。我已经被拒绝了两次,任何关于可能导致问题的想法将不胜感激。

0 投票
1 回答
279 浏览

ios - 等到应用内购买完成,直到执行操作

当按下按钮时,我使用 storekit 购买它。但问题是 createItems() 函数和 segue 在确认购买之前执行。有没有办法做到这一点?

我需要在应用内购买完成后运行函数 + segue。

内购功能:

支付队列功能

0 投票
1 回答
220 浏览

ios - 如何从枚举中检索值?

我正在使用SwiftyStoreKit并弄清楚如何检索收据验证的状态。我想statusreceiptInvalid(receipt: ["status": 21004, "environment": Sandbox], status: SwiftyStoreKit.ReceiptStatus.secretNotMatching). 我将如何获得价值21004

receiptInvalid是最后一种情况的结果:

收据信息:

最终目标是为 Apple App Review 测试代码21007。谢谢!

编辑:注释所在的位置是什么代码?

0 投票
1 回答
1117 浏览

ios - 如何在 iOS Swift 中正确恢复应用内购买产品

我的产品列表中有非消耗品和自动更新订阅。因此,当我尝试恢复购买时,我得到了所有购买。现在恢复购买时应该采取什么方法。

就我而言,我有两种按月和按年收费的产品,另一种是非消耗品,可终身使用。所以在测试时,我做了几笔交易。但是在恢复时,我注意到我得到了所有购买的交易列表,我需要从中为用户恢复有效的产品。那么我怎么知道要恢复哪个项目呢?

从文档中,我找到了一种验证订阅和验证产品的方法。但从我的回复中我可以看出,我拥有可用于恢复的月度和终身产品。我应该在这里做什么?

这是我的代码

**恢复时完整的购买产品列表:**

0 投票
0 回答
616 浏览

ios - “无法检索产品信息”“无效的产品标识符”SwiftyStoreKit iOS Swift Xcode

我在使用 SwiftyStoreKit 框架时遇到问题,我什至不确定如何测试以查看是否已解决问题。当我使用我的沙盒帐户时,所有购买都很好。但是当我将它提交到 App Store 时,他们拒绝了它,因为他们说他们收到一条消息,上面写着“无法检索产品信息 - 无效的产品标识符:com.rrtenz.puzzlesfromsurvivor2.unlockAll”。

我在下面包含了他们的屏幕截图和问题描述的全文。

在此处输入图像描述

指南 2.1 - 性能 - 应用程序完整性

在通过 Wi-Fi 运行 iOS 的 iPad 上查看时,我们在您的应用程序中发现了一个或多个错误。

从商店进行任何选择时,我们收到了附加的错误消息。

下一步

要解决此问题,请在设备上运行您的应用以识别任何问题,然后修改并重新提交您的应用以供审核。

如果我们误解了您的应用程序的预期行为,请在调解中心回复此消息,以提供有关这些功能的预期工作方式的信息。

对于新应用程序,请从设备上卸载所有以前版本的应用程序,然后安装并按照步骤重现问题。对于更新,请安装新版本作为对先前版本的更新,然后按照步骤重现问题。

资源

有关测试您的应用程序和准备审查的信息,请参阅技术说明 TN2431:应用程序测试指南。

有关网络概述,请查看关于网络。

该产品已添加到 App Store Connect,并且产品标识符匹配。

我不知道这是否重要,但我的应用程序包标识符是“com.rrTenz.Puzzles -for-Survivors ”,我的产品标识符是“com.rrtenz.puzzlesfromsurvivor2 .xxxxx ”。

这是我的代码:

应用委托:

获取信息代码:

制作购买代码:

所以正如我之前提到的,我不确定如何调试这个问题,因为当我使用我的沙盒帐户时,我什至无法复制该行为。如果有人有任何建议或可以确定我做错了什么,我将不胜感激。

0 投票
0 回答
456 浏览

ios - 尝试在服务器端验证配方时出错:iOS 收据验证错误 21002

我使用SwiftyStoreKit在我的应用程序中设置了 InAppPurchase,我正在尝试验证我的收据。为此,我将其取出并将其发送给 Apple。

我知道那不是正确的方法,但我只是在测试。如果我让它工作不好在服务器端做。无论如何,问题是响应总是21002,根据 Apple 的说法,女巫的意思是:receipt-data 属性中的数据格式错误或丢失。 但是当我使用 SwiftStore 方法验证我的收据时,它可以工作。

这是我用来获取收据并将其发送到苹果的代码(注意:CarregaDados.callMethodJson 它只是一个内部带有 Alamofire 调用的函数)

那总是返回21002。但是当我使用 SwiftyStoreKit 检查它时,它可以工作并返回我需要的所有信息:

所以我不知道是什么问题。

0 投票
1 回答
1526 浏览

swift - 检查用户是否已经在 SwiftyStoreKit 中购买了产品

我实现了应用内购买,并且正在使用 SwiftyStoreKit。一切正常,但想检查用户是否已经购买了产品。我希望当用户进入不适当的页面时显示一个按钮。如果它买了然后显示“Open”如果不是“theprice”。我不太明白我怎么能做到这一点。

viewDidLoad() :

这是收据验证和购买产品功能。

我想检查视图何时加载按钮应具有的标题以及产品是否已购买。

0 投票
1 回答
922 浏览

ios - URLSession dataTask 无错误无数据返回,导致 SwiftyStoreKit.ReceiptError 错误 1

为什么下面的代码会导致两者都URLSession返回and ?nildataerror

在运行此代码时,一位用户点击了这No network error, but no data either条线。

根据Apple的文档URLSession.dataTask

如果请求成功完成,completion handler 块的 data 参数包含资源数据,error 参数为 nil。如果请求失败,则 data 参数为 nil,error 参数包含有关失败的信息。

我将其读为:要么dataerror应该始终为非零。但这似乎并没有在这里发生。在什么情况下两者都为零?

(如果有帮助 - 有问题的 URL 是https://buy.itunes.apple.com/verifyReceipt上的 iTunes 收据验证 API,受影响的用户是 Apple 的审阅者,他们通常不愿意协助调试。这段代码实际上是 SwiftyStoreKit 的一部分,它会导致SwiftyStoreKit.ReceiptError error 1审阅者的错误——但绝不会导致其他任何人。)