问题标签 [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.
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 和错误。
ios - “SwiftyStoreKit.completeTransactions() 应该只在应用启动时调用一次。”
我将 SwiftyStoreKit 与 SwiftUI 和 App 而不是 App Delegate 一起使用,并在控制台中收到此消息:“SwiftyStoreKit.completeTransactions() 应仅在应用启动时调用一次。” 我相信它,因为我在下面的块中调用了 completeTransactions,我可以从 Print 语句中看到,它比以前调用 AppDelegate 的 didFinishLaunching 更频繁。我关注此消息的原因是我在尝试购买时因崩溃而被 App Review 拒绝。我还应该在哪里调用 completeTransactions?
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
swift - 使用 IAP 订阅的正确方法
我正在尝试使用SwiftyStoreKit
并面临一些问题来实施 IAP 订阅,我什么时候必须验证收据,如何知道订阅何时有效以及何时刷新它。我没有使用任何服务器,只是设备上的本地服务器。
所以,首先我要求使用的产品SwiftyStoreKit.retrieveProductsInfo
,而不是向用户展示产品。我不知道订阅的正确方案是什么,我应该先使用验证收据SwiftyStoreKit.verifyReceipt
,AppleReceiptValidator
然后再询问产品吗?如何知道订阅是否仍然有效?
我面临的另一个问题是,当尝试使用 恢复购买时SwiftyStoreKit.restorePurchases
,响应成功并带有一组Purchase
对象,但是在打印它们时,我得到很多使用相同 ProductId 和相同日期的对象,恢复 transactionId 是不同的。我怎样才能确定哪些是活跃的?
当用户取消订阅或恢复购买时,我该如何处理?我怎么知道又不给用户奖励钱呢?(每月 10k 硬币)
订阅会移除应用中的所有广告,每个订阅月给用户 10k 金币。
ios - 使用 SwiftyStoreKit 自动更新
SwiftyStoreKit 对我来说是一个非常困难的产品,因为将近一周,我在 StackOverflow、YouTube 和 Google 中到处搜索答案。由于我正在研究 Auto-Renewable,因此我找不到任何答案,并且我试图找出用户是否取消订阅或过期,应用程序会要求重新订阅。在测试期间,购买效果很好,但我需要弄清楚应用程序如何知道订阅是否过期。每次我尝试验证时,我的验证收据总是会返回以下错误消息。我做错了什么?
这是我的顶级代码:
购买时带有按钮的代码
AppDelegate.swift
StoreKitManager.swift
ios - 使用 SwiftyStoreKit 获得无效的产品标识符错误 InApp 购买
我SwiftyStoreKit
在我的应用程序中使用 InApp 购买。我将我的应用程序上传到了 TestFlight。每当我从 TestFlight 安装应用程序并尝试购买包时,retrieveProductsInfo
给我的结果为零retrievedProducts
并且它说产品 ID 无效。我确认满足以下所有条件
- AppStore connect 和 Project 中使用的捆绑标识符相同,并且是启用了 InApp 购买功能的显式标识符
- AppStore 中的产品 id 连接匹配我在代码中用于检索产品的那个
- 产品处于“已结清销售”状态
- 与财务相关的所有信息均已填写。比如联系信息、银行信息和税务信息。
请让我知道我在这里缺少什么。
谢谢。
ios - SwiftyStoreKit IAP 购买但启动后不记得它的设置
我正在尝试在我的游戏中集成一个非常基本的单一 IAP,在这里我从我的GameScene
这些方法被正确调用,并在里面引用这些GameViewController.swift
;
测试 IAP 通过,它从应用商店获取正确的信息,我使用我的沙盒详细信息进行购买,它通过成功的购买消息正确通过。但是,bannerView
并没有隐藏,更重要的是,再次重新启动游戏时,一切都被遗忘了,游戏认为没有购买任何东西。我猜它必须是某种缺少的检查。
我有这个在我的viewDidLoad
它总是显示print("Not purchased, so show the ads")
用于购买的IAPHelper
文件是;
并且日志确实 print("OK It's purchased")
在首次购买后显示 - 所以我很难看到出了什么问题。
ios - 需要了解如何为我的应用实施自动续订订阅
我正在开发需要实现自动更新订阅的应用程序
基本上,我还没有进行应用内购买,所以我不知道如何开始,我有几个问题以及根据我的应用要求让我知道需要做什么
我在开发者帐户上创建了每月和每年的应用内购买计划
现在让我知道购买完成后需要做什么?
我什么时候需要检查订阅是否有效?(在打开应用程序或单击我们提供服务的按钮时)
我应该何时验证订阅或收据?
给我这个想法
swift - 是否可以在 xCode 设置中更改应用商店产品的 productId?
我面临一个关于应用内购买的问题。我尝试了很多搜索,但最终在这里寻求帮助。我的客户要求我更改 ios 的 bundleId 并更改用于发布应用程序的帐户。因此,我必须在 appStoreConnect 中创建一个新应用来实现应用内购买价格。问题是我已经完成了与应用内购买相关的所有必要步骤,但仍未在我的代码中获取产品详细信息。我也在使用 SwiftyStoreKit。我不知道我哪里错了。任何帮助将不胜感激。谢谢。
storekit - 如何在 iOS / StoreKit 2 中通过订阅从付费版本更改为免费版本
多年来,我在应用商店中有一个现有的应用。用户必须付费才能下载该应用程序。现在我想通过实施应用内购买来转向免费增值模式。我想对我的应用程序的以前购买者公平。
我搜索并阅读了很多关于这个主题的内容,但它仍然让我感到害怕,主要是因为它总是归结为解析原始交易收据并“解析”诸如“原始应用程序版本字段”之类的加密内容......我是如此希望,新的 StoreKit 2 为这个非常常见的问题提供了更多选择,但找不到。
所以我在这里问: StoreKit 2中是否有更简单的方法可以从原始购买中检索更多“可读”数据?
任何提示将不胜感激。