2011-03-26 90 views
1

我花了最后2天的努力尝试进入应用程序购买工作!该应用程序尚未得到Apple的批准(尚未准备好),所以我只是采用了开发者拉取二进制方法。我添加了一个非消耗品(我敢肯定我的合同将被清除),并把它称为com.MYAPP.MYAPPNAME.leveloneMKStoreKit实施

我使用MKStoreKit 3.1相关

我只是想看看该项目将出现在的NSLog的应用程序,所以我有这个在我的应用程序Delagate

- (void) applicationDidFinishLaunching:(UIApplication*)application 
{ 

    [MKStoreManager sharedManager]; 
    [[MKStoreManager sharedManager] purchasableObjectsDescription]; 
     ... 

当我运行这个它只是告诉我

Problem in iTunes connect configuration for product: com.mycompany.myapp.005 
Problem in iTunes connect configuration for product: com.mycompany.myapp.featureA 

这是一个基于cocos2d的游戏,如果它有什么区别。

回答

0

删除不使用的产品里面MKStoreManager.m如下

-(void) requestProductData 
{ 
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects: 
            kFeatureAId, 
            //kConsumableFeatureBId, 
            nil]]; 
    request.delegate = self; 
    [request start]; 
} 
3

MKStoreKit 3.1需要一些配置之后再使用;它不仅仅是开箱即用。

具体来说,您需要告诉MKStoreKit您在iTunes Connect中配置的功能/产品标识符列表。奇怪的是,你通过修改源代码来实现这一点,而不是传入一组参数。

检查MKStoreManager.h lines 26-34

// CONFIGURATION STARTS -- Change this in your app 
define kConsumableBaseFeatureId @"com.mycompany.myapp." 
#define kFeatureAId @"com.mycompany.myapp.featureA" 
#define kConsumableFeatureBId @"com.mycompany.myapp.005" 
// consumable features should have only number as the last part of the product name 
// MKStoreKit automatically keeps track of the count of your consumable product 

#define SERVER_PRODUCT_MODEL 0 
// CONFIGURATION ENDS -- Change this in your app 

你必须改变的东西。如果你不这样做,你会得到类似你发布的错误。

但这不是唯一的地方。您还必须更新requestProductData实施功能MKStoreManager.m,其中kFeatureAIdkConsumableFeatureBId被使用。

-(void) requestProductData 
{ 
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects: 
            kFeatureAId, 
            kConsumableFeatureBId, 
            nil]]; 
    request.delegate = self; 
    [request start]; 
} 

您必须自己指定产品标识符列表; MKStoreKit无法为你猜出它。

不过,这很奇怪。它使你希望MKStoreKit只会在其初始化器中接受一系列产品标识符!

4

有一些原因让我没有实现MKStoreManager接受一组产品作为参数。 1)你不应该用硬编码的产品id来代替你的代码。这是因为您使用产品ID启动购买请求。前者发生在AppDelegate上,后者发生在你的一个视图控制器上。所以应该有一些文件,你把所有这些产品常量。为什么不使用MKStoreManager.h本身呢?

+4

+1:Kumar,你已经在MKStoreKit v4上做了出色的工作。我想说一声谢谢... – 2011-11-03 00:53:05