基本上,我试图在应用程序购买testing应用程序之前,我把它们实施到我的公司正在合适的应用程序。 我已经阅读了大约1000次的商店套件pdf和其他片段,但是产品仍然是空的。 这正是我到目前为止所做的: 安装testing应用程序和In App Purchasetesting项目 我在iPhone开发中心的公司开发人员门户网站上为“Test App One”创build了一个新的应用程序ID。 我确定前缀是com.mycompany.testappone以确保可以configuration应用程序购买。 留在应用程序ID部分,我通过勾选“启用应用程序内购买”选项configuration应用程序购买。 我在iTunes Connect中创build了“Test App One”,并完成了通常的程序,但是select了“稍后上传二进制文件”,并没有提交审核,因为该应用程序什么都不做。 当然,我们不必提交应用程序来检查这个工作?! 然后,我点击了应用程序购买pipe理,并创build了一个新的产品ID“test1”,并批准它,以便清除销售。 码 我在XCode中build立了一个名为TestAppOne的新项目,这里是我现在使用的唯一两个类: TestAppOneAppDelegate.h: #import <UIKit/UIKit.h> #import <StoreKit/StoreKit.h> @interface TestAppOneAppDelegate : NSObject <UIApplicationDelegate, SKRequestDelegate, SKProductsRequestDelegate> { UIWindow *window; } TestAppOneDelegate.m: #import "TestAppOneAppDelegate.h" static NSString *kMyFeatureIdentifier1 = @"com.mycompany.testappone.test1"; @implementation TestAppOneAppDelegate @synthesize window; – (void)applicationDidFinishLaunching:(UIApplication *)application { if([SKPaymentQueue canMakePayments]) { NSLog(@"IN-APP:can […]
对于具有非消费性应用程序内购买的基本应用程序,是否有人想出了使用SKPaymentQueue的restoreCompletedTransactions最佳实践? 意见 我知道build议您始终注册一个交易观察员,以接收未完成交易,然后回到应用程序,但这是一个不同的问题。 看起来像restoreCompletedTransactions是应用程序必须积极决定何时调用轮询所有客户已经做的采购。 据我所知,该方法旨在检索可能已经丢失的购买。 例如,一个客户可能会安装或移动应用程序到一个新的设备应用程序的本地logging以前的付款丢失或重置。 关注 我不清楚的是如何以可靠的方式自动检测到这种情况(即如何决定何时缺货购买)。 我不想把这个搞砸,否则就有可能拒绝客户访问他们已经支付的function。 同时,我不希望每次调用restoreCompletedTransactions时,应用程序启动都是安全的,基本上可以返回99.9%的时间我已经知道的事务。 (除了应用程序内购买,我的应用程序并不需要任何networking连接。) 笔记 苹果公司的文件澄清说,客户不会再收取任何他们已经作出的非消耗性采购。 如果他们试图重新购买,付款交易仍然应该发送到应用程序。 最糟糕的情况是,客户可以通过这种方式来恢复购买,但是我仍然希望避免将它们放在类似于重新购买已经支付的东西的path上。
我一直玩的应用程序购买了几天,一切正常,直到我试图validation与应用程序商店的收据,因为我经常回到无效状态。 我将收据数据传递给我的PHP服务器,然后从那里转发到app store,一旦我得到一个有效的响应,我打算将收据数据添加到我的数据库。 商店套件编程指南和类参考对于这个特定的领域来说没有什么用处,因为它们并没有给你任何例子,我find了一篇有用的文章 ,帮助我了解了一些东西,但还是有些错误。 基本上我想知道是否有收到validation工作的人愿意分享他们的代码,因为我无处可去。 谢谢
从5.0开始,iOS模拟器支持StoreKit,因此您可以在不使用设备的情况下debugging应用内购买。 但是,它有一个问题。 login后(进行应用内购买)我无法更改AppStorelogin。 设置没有“AppStore”项目,所以我不能从帐户“注销”。 我试图从模拟器中删除应用程序,重新启动模拟器,从iTunesConnect删除testing用户 – 没有成功。 问题的屏幕 任何想法?
可能重复: iPhone StoreKit – 无效的产品ID 我从SKProductsRequest获得一个空的产品标识符数组。 我做了以下步骤: 在iTunes Connect中的“pipe理用户”下创build了一个In App Purchasetesting用户帐户 在“pipe理您的应用内购买”下创build了一些应用购买产品。 将应用程序加载到iPhone上,进入设置→存储并注销常规商店 (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response设置一个断点(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)responsecallback 所有提交的产品ID都在响应的invalidProductIdentifiers属性中。 提交请求时,我尝试了第2步中创build的产品ID以及以Bundle ID为前缀的ID。 提前致谢, Raghu
我正在为应用程序添加应用程序内购买。 我能够接收productsRequest:didReceiveResponse方法,并接收产品数组。 当我向SKPaymentQueue添加SKPayment时 ,会出现问题。 在将产品添加到队列后,在paymentQueue:updatedTransactions方法中,事务始终具有状态SKPaymentTransactionStateFailed 。 我NSLog“transaction.error”,这就是它返回:错误域= SKErrorDomain代码= 0 UserInfo = 0x165000“无法连接到iTunes Store” 我已经在“设置”应用程序中退出了商店,但在尝试在我的应用程序中购买产品后,从未要求我使用我的testing帐户login。 它只是以上述错误失败。
我正在写与StoreKit相关的代码,当我尝试将购买添加到队列时,我收到了一些相当麻烦的错误代码。 到目前为止,我经历了错误代码-1003和-1004,我无法find有关这些代码在互联网上的任何东西。 运行产品请求会返回有效的产品编号,所以我不知道为什么要调用[[SKPaymentQueue defaultQueue] addPayment:aPayment]; 会因为这个没有logging的问题而失败。 相同的代码也可以在一个设备上没有错误,但在另一个设备上没有错误。 我所拥有的问题迄今尚未解答: 这些代码是什么意思? 我怎样才能缓解这个问题? 为什么发生购买尝试而不是产品要求呢? 我已经完成的故障排除包括重新生成签名证书和configuration文件,更改WiFinetworking,清理和构build并重新安装所有相关的软件和组件,这些事情都没有单独或一起帮助解决问题。 编辑: 在苹果开发论坛上发现了一个关于这个问题的讨论,但苹果没有人回应: https : //devforums.apple.com/thread/107121? tstart =75 (iOS开发者帐户需要查看) 编辑: 我今天遇到错误代码-1001,添加到这个莫名其妙的和间歇性的问题列表。 苹果仍然没有问责,我可以find。 编辑: 我怀疑这些错误代码是随机生成的,只是表明Sandbox已closures。 任何人都会遇到这个问题?