应用内购买适用于 iOS 3 和 5,但不适用于 iOS 4
Posted
技术标签:
【中文标题】应用内购买适用于 iOS 3 和 5,但不适用于 iOS 4【英文标题】:In-App purchase works on iOS 3&5 but not on iOS 4 【发布时间】:2011-10-30 16:45:22 【问题描述】:我有一个无法解决的问题,我被卡住了。
我已经实现了一个应用内购买屏幕,问题是当我在 ios3.1.3 上检查它时它在 iOS5 模拟器上也能完美运行,但是在使用 iOS4 时我没有得到响应,
我正在使用的相关代码:
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
if ([response.products count]==0)
// Always gets in here on iOS4....
else
//get here on 3.1.3 or 5
[productDetailsList addObjectsFromArray: response.products];
....
[request release];
- (void)requestProductData
for (short item_count = 1; item_count <=4 ; item_count++)
[productIdentifierList addObject:[NSString stringWithFormat:@"myApp.item.%d", item_count]];
SKProductsRequest *request = [[[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifierList]] retain];
request.delegate = self;
[request start];
.h 文件如下所示:
#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h>
@interface viewController : UIViewController
<SKProductsRequestDelegate, SKPaymentTransactionObserver>
NSMutableArray *productIdentifierList;
NSMutableArray *productDetailsList;
NSMutableArray *transactionHistory;
@property (nonatomic, retain) NSMutableArray *productIdentifierList;
@property (nonatomic, retain) NSMutableArray *productDetailsList;
@property (nonatomic, retain) NSMutableArray *transactionHistory;
- (void)requestProductData;
- (void)completeTransaction: (SKPaymentTransaction *)transaction;
- (void)restoreTransaction: (SKPaymentTransaction *)transaction;
- (void)failedTransaction: (SKPaymentTransaction *)transaction;
- (void)recordTransaction: (SKPaymentTransaction *)transaction;
- (void)provideContent: (NSString *)productIdentifier;
@end
我尝试从头开始提供所有配置,但并没有解决问题,也许这与内存管理有关,但我不知道是什么。
奇怪的是它适用于我的 3.1.3 而不是 4.2.1。
请帮忙...
【问题讨论】:
我也尝试创建一个新的配置文件,并启用应用内。没有任何效果!请尝试提供帮助。 我认为这可能与上一个有关。版本!我还必须安装上一个。在使用 storekit 安装新程序之前,我的程序版本。 (本例中的Previous是指Storekit实施之前的版本) 【参考方案1】:StoreKit API 仅在 4.2 中适用于 Device,因此您必须尝试在 Device 中执行它。 虽然在 3.1 ios 模拟器版本中我没有工作但在 ios5 模拟器中它正在工作我认为这可能是 ios5 模拟器的错误或者他们正在尝试提供新功能。 但在 Apple 的网站中,他们提到 storekit 只能在设备上运行。
因此,您只需尝试在设备上构建您的项目。
【讨论】:
这不再完全正确。我可以在 iOS 5.0 模拟器上从 Apple 获取和购买产品,但在 iOS 4 上不行。以上是关于应用内购买适用于 iOS 3 和 5,但不适用于 iOS 4的主要内容,如果未能解决你的问题,请参考以下文章
Open in... 自定义文件类型适用于 iOS 5、6 和 7,但不适用于 iOS 4
UITabBar 外观适用于 iOS6 但不适用于 iOS 5