我有一个iOS应用程序,其中包含非消费性IAPApple托管内容。下载量非常大(~500MB)。在下载内容时,我必须保持事务“打开”,并且只有在下载完成后才完成事务。问题是,每次我将应用程序从后台移到前台(或打开应用程序)时,StoreKit都会自动请求重新验证,而交易在队列中。因此,如果我开始下载,按下主页按钮,返回到应用程序,StoreKit将要求我登录。无论我重新登录还是直接按“取消”,下载都会继续。有没有办法摆脱这个重新认证请求? 最佳答案 您可以使用SKPaymentTransactionStateDeferred来避免这
我一直在尝试实现带有试用期的自动续订订阅(ARS)。我已经有一个应用程序实现了ARS,并且运行良好。现在我想在这些订阅中也添加试用期。因此,出于测试目的,我创建了两个新产品,其中设置了1个月的试用期。现在在沙盒环境中,当我尝试从我已经订阅的沙盒ID购买这两个新产品时,过程顺利进行,没有任何问题。但是,当我尝试使用新的沙盒帐户购买它们时,应用程序在到达updatedTransaction观察者方法后崩溃。在这种方法中,我收到了产品购买的收据和整个交易明细。但是应用程序在此之后崩溃了。恢复对同一产品的购买工作正常。以下是崩溃日志和快照:Terminatingappduetouncaught
您好,如果用户在第一次尝试时就对应用程序进行了评分,那么用户将永远不会再看到我们的评分弹出窗口吗?还是365天后他就能重见光明? 最佳答案 在每次更新时,用户可以获得弹出窗口,具体取决于您调用“requestReview()”的位置尝试在您的用户使用您的应用时调用此函数。 关于ios-SKStoreReviewControllerrequestReview()如果用户对应用进行评分,系统将永远不会提示他对我们进行评分吗?,我们在StackOverflow上找到一个类似的问题:
我很快就要实现StoreKit功能,我想知道......有没有办法同时向用户免费提供一次产品,例如作为首次使用该应用程序的礼物?在我的特殊情况下,我将在我的教育应用程序中提供几种产品,如果用户有兴趣继续使用该应用程序学习,他将需要一次又一次地购买这些产品。但我希望用户免费获得的第一个产品应该是他选择使用哪个产品。所以一般所有的产品都应该有价格,但是第一次下载是免费的。我想让它登录到我的服务器上,这样我就可以重新识别他,所以(A)他不能删除应用程序,重新安装和下载另一个免费产品,以及(B)所以他也可以在任何其他他的设备。我也愿意接受变通办法,比如可能获得类似于appleid的东西,以便能
问题:我调用[[SKPaymentQueuedefaultQueue]restoreCompletedTransactions];它返回到我的观察者paymentQueueRestoreCompletedTransactionsFinished:SKPaymentQueue带有空交易数组。但我已经购买了非消耗性应用内应用。我正在测试我的应用如何恢复不同状态下的购买。重现的简单步骤:添加付款并完成购买。队列返回SKPaymentTransactionStatePurchased交易,因此应用启用功能并完成队列中的交易。删除有关购买的信息,以便我重新购买。(想象一下,用户重新安装了该应用程
例如,是否可以判断购买是在英国/美国商店进行的? 最佳答案 据我所知,我不认为有一种方法可以检测用户下载的特定商店,但是最合理的解决方案是检测他们的语言环境,并假设他们正在使用特定位置的默认商店。NSLocale*locale=[NSLocalecurrentLocale];NSString*country=[localeobjectForKey:NSLocaleCountryCode];if([countryisEqualToString:@"UK"]){//UnitedKingdom}但是,用户可以在设备上更改他们的商店设置,因
是否可以存储与用户的AppleID绑定(bind)的自定义数据,例如有关已激活产品的信息?手头的任务是一个包含数字内容的应用程序,可以通过应用程序内购买来购买。内容也可以作为硬拷贝提供(在应用程序之外);图书购买者将收到随书附赠的优惠券代码,可在应用程序中免费激活此内容。据我所知,没有免费的应用程序内购买,因此我们必须自己跟踪激活的优惠券(仅设备存储空间不够——例如,当用户升级他的设备时)。我们希望避免引入某种用户帐户来存储此数据,因为其他任何地方都不需要它。因此想法:有没有办法使用用户的AppleID将此数据与之关联?或者,您能否想出一种不会给用户带来太多麻烦的不同方法?非常感谢任何
这是我第一次设置应用程序内购买,但我被卡住了。当我尝试发出产品请求时,我收到错误“无效的产品ID:TVRBIBLIA001”。我在StackOverflow中看到几个问题,寻找可能的解决方案但没有成功,所以我发布了自己的问题。这是我的应用内购买的设置。这是我的代码:#pragmamark-#pragmamarkRemoveAdsInAppPurchase-(IBAction)requestRemoveAdsProductData{NSSet*productIdentifiers=[NSSetsetWithObject:@"TVRBIBLIA001"];productsRequest=[
有人可以向我解释一下iOS上的自动续订订阅需要什么吗?我很困惑它是否需要一个服务器端组件(我自己构建的)?或者一切都可以在应用程序中处理? 最佳答案 对于最基本的设置,答案是否定的,您不需要自己的后端。Apple会处理这笔钱,您可以在应用程序中从apple获取交易状态,并根据该信息解锁或锁定用户支付的任何内容。 关于objective-c-iOS上自动续订订阅所需的服务器,我们在StackOverflow上找到一个类似的问题: https://stackove
有时下载会失败,而我的应用会在失败时完成交易,就像到处都推荐的那样。但是,如果我完成交易,那么StoreKit将无法恢复失败的下载。而且似乎StoreKit不会在下载失败后自动重试下载内容,而且似乎也没有办法触发下载。有人知道在这种情况下该怎么做吗?违背所有建议,在内容完全下载和安装之前不完成交易?或者我必须以编程方式恢复交易并忽略所有其他产品标识符吗? 最佳答案 您可以通过这种方式在您的应用中添加一个恢复购买的按钮:-//insideofanIBaction[[SKPaymentQueuedefaultQueue]addTrans