问题标签 [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.
swift - 检索产品本地化价格 - 无效函数中的意外非无效返回值
我正在使用SwiftyStoreKit在我的项目中实现 iAP。我有一个用户可以购买和恢复的自动更新订阅。这似乎工作正常,但是在检索要显示到 UI 的产品信息时遇到问题。
我正在尝试显示本地化价格,返回的价格是年度成本,因此我需要将该数字除以 12 以将其显示为每月成本。但是,当获取价格并尝试恢复价值时,我收到以下错误:
void 函数中出现意外的非 void 返回值
设置按钮值
检索价格
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 上工作
swift - 审查期间的应用内购买无效标识符(在开发中工作正常)
我正在开发一个具有非消耗性产品的应用程序。我已经使用多个沙盒帐户进行了测试,并且在开发过程中一切正常。但是在应用审核期间,productid 被返回为无效,我无法通过审核。在我提交应用程序以供审核之前,我确保非消耗品处于“等待审核”状态。我在 xcode 中也有最新的配置文件设置。我已经被拒绝了两次,任何关于可能导致问题的想法将不胜感激。
ios - 等到应用内购买完成,直到执行操作
当按下按钮时,我使用 storekit 购买它。但问题是 createItems() 函数和 segue 在确认购买之前执行。有没有办法做到这一点?
我需要在应用内购买完成后运行函数 + segue。
内购功能:
支付队列功能
ios - 如何从枚举中检索值?
我正在使用SwiftyStoreKit
并弄清楚如何检索收据验证的状态。我想status
从receiptInvalid(receipt: ["status": 21004, "environment": Sandbox], status: SwiftyStoreKit.ReceiptStatus.secretNotMatching)
. 我将如何获得价值21004?
receiptInvalid
是最后一种情况的结果:
收据信息:
最终目标是为 Apple App Review 测试代码21007。谢谢!
编辑:注释所在的位置是什么代码?
ios - 如何在 iOS Swift 中正确恢复应用内购买产品
我的产品列表中有非消耗品和自动更新订阅。因此,当我尝试恢复购买时,我得到了所有购买。现在恢复购买时应该采取什么方法。
就我而言,我有两种按月和按年收费的产品,另一种是非消耗品,可终身使用。所以在测试时,我做了几笔交易。但是在恢复时,我注意到我得到了所有购买的交易列表,我需要从中为用户恢复有效的产品。那么我怎么知道要恢复哪个项目呢?
从文档中,我找到了一种验证订阅和验证产品的方法。但从我的回复中我可以看出,我拥有可用于恢复的月度和终身产品。我应该在这里做什么?
这是我的代码
**恢复时完整的购买产品列表:**
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 ”。
这是我的代码:
应用委托:
获取信息代码:
制作购买代码:
所以正如我之前提到的,我不确定如何调试这个问题,因为当我使用我的沙盒帐户时,我什至无法复制该行为。如果有人有任何建议或可以确定我做错了什么,我将不胜感激。
ios - 尝试在服务器端验证配方时出错:iOS 收据验证错误 21002
我使用SwiftyStoreKit在我的应用程序中设置了 InAppPurchase,我正在尝试验证我的收据。为此,我将其取出并将其发送给 Apple。
我知道那不是正确的方法,但我只是在测试。如果我让它工作不好在服务器端做。无论如何,问题是响应总是21002,根据 Apple 的说法,女巫的意思是:receipt-data 属性中的数据格式错误或丢失。 但是当我使用 SwiftStore 方法验证我的收据时,它可以工作。
这是我用来获取收据并将其发送到苹果的代码(注意:CarregaDados.callMethodJson 它只是一个内部带有 Alamofire 调用的函数)
那总是返回21002。但是当我使用 SwiftyStoreKit 检查它时,它可以工作并返回我需要的所有信息:
所以我不知道是什么问题。
swift - 检查用户是否已经在 SwiftyStoreKit 中购买了产品
我实现了应用内购买,并且正在使用 SwiftyStoreKit。一切正常,但想检查用户是否已经购买了产品。我希望当用户进入不适当的页面时显示一个按钮。如果它买了然后显示“Open”如果不是“theprice”。我不太明白我怎么能做到这一点。
viewDidLoad() :
这是收据验证和购买产品功能。
我想检查视图何时加载按钮应具有的标题以及产品是否已购买。
ios - URLSession dataTask 无错误无数据返回,导致 SwiftyStoreKit.ReceiptError 错误 1
为什么下面的代码会导致两者都URLSession
返回and ?nil
data
error
在运行此代码时,一位用户点击了这No network error, but no data either
条线。
根据Apple的文档URLSession.dataTask
:
如果请求成功完成,completion handler 块的 data 参数包含资源数据,error 参数为 nil。如果请求失败,则 data 参数为 nil,error 参数包含有关失败的信息。
我将其读为:要么data
或error
应该始终为非零。但这似乎并没有在这里发生。在什么情况下两者都为零?
(如果有帮助 - 有问题的 URL 是https://buy.itunes.apple.com/verifyReceipt上的 iTunes 收据验证 API,受影响的用户是 Apple 的审阅者,他们通常不愿意协助调试。这段代码实际上是 SwiftyStoreKit 的一部分,它会导致SwiftyStoreKit.ReceiptError error 1
审阅者的错误——但绝不会导致其他任何人。)