首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKStoreKit实现

MKStoreKit实现
EN

Stack Overflow用户
提问于 2011-03-27 06:08:02
回答 3查看 4.5K关注 0票数 1

在过去的两天里,我一直在努力尝试让应用程序购买工作!这个应用程序还没有被苹果批准(它还没有准备好),所以我只是做了开发人员拉二进制法。我添加了一个非消耗性组件(我非常确定我的合同已经被清除),并将其命名为com.MYAPP.MYAPPNAME.levelone

我正在使用与MKStoreKit 3.1相关的

我只想看到项目会出现在应用程序的NSLog中,所以我在我的应用程序延迟门中有这个

代码语言:javascript
复制
   - (void) applicationDidFinishLaunching:(UIApplication*)application
{

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

当我运行这个的时候,它只会告诉我

代码语言:javascript
复制
Problem in iTunes connect configuration for product: com.mycompany.myapp.005
Problem in iTunes connect configuration for product: com.mycompany.myapp.featureA

这是一个基于Cocos2d的游戏,如果它有什么不同的话。

EN

回答 3

Stack Overflow用户

发布于 2011-05-19 17:49:18

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

票数 4
EN

Stack Overflow用户

发布于 2011-04-15 14:46:24

MKStoreKit 3.1在使用之前需要进行一些配置;它不是开箱即用的。

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

检查MKStoreManager.h lines 26-34

代码语言:javascript
复制
// 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

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

但那不是唯一的地方。您还必须更新MKStoreManager.m中的requestProductData实现函数,其中使用了kFeatureAIdkConsumableFeatureBId

代码语言:javascript
复制
-(void) requestProductData
{
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects: 
                                  kFeatureAId,
                                  kConsumableFeatureBId,
                                  nil]];
    request.delegate = self;
    [request start];
}

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

尽管如此,还是很奇怪。它会让你希望MKStoreKit在它的初始化器中只接受一个产品标识符数组!

票数 3
EN

Stack Overflow用户

发布于 2011-04-13 00:59:36

删除MKStoreManager.m中未使用的产品,如下所示

代码语言:javascript
复制
-(void) requestProductData
{
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects: 
                                  kFeatureAId,
                                  //kConsumableFeatureBId,
                                  nil]];
    request.delegate = self;
    [request start];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5445627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档