在Objective C中使用Apple托管的内容上载/下载数据

时间:2019-03-07 10:10:43

标签: objective-c download upload in-app-purchase user-data

我正在开发带有非消耗性应用内购买的应用,并使用Apple内容托管。但是我没有关于使用Apple托管内容上传/下载数据的想象。 我已经配置了应用内购买托管内容包,并上传到Apple商店。

这是我的还原功能代码。

- (void)buyProduct:(SKProduct *)product {

    SKPayment * payment = [SKPayment paymentWithProduct:product];
    [[SKPaymentQueue defaultQueue] addPayment:payment];
}

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
    for (SKPaymentTransaction * transaction in transactions) {
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchased:
                [self completeTransaction:transaction];
                break;
            case SKPaymentTransactionStateFailed:
                [self failedTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:
                [self restoreTransaction:transaction];
            default:
                break;
        }
    };
}

- (void)restoreTransaction:(SKPaymentTransaction *)transaction {
    [self provideContentForProductIdentifier:transaction.originalTransaction.payment.productIdentifier];
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}

- (void)restorePuchased {
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}

我想上传/下载用户数据,例如:姓名,出生日期,城市...,以便在删除并重新安装的情况下进行恢复。

在应用内购买托管包中具有“ ContentInfo.plist”文件,但仅存储ContentVersion和IAPProductIdentifier。它可以存储用户的数据,例如姓名,出生日期等吗?以及如何将此包上传/下载到Apple托管的内容服务器?

我添加了像图片一样的参数(UserInfo,UserWeight,UserHealthIndicators) enter image description here

我可以使用“ objectforkey”之类的文件上传/下载这些参数吗?

NSString *pathToYourContent = @""; // Path of file
NSString *contentInfoPath = [pathToYourContent 
stringByAppendingPathComponent:@"ContentInfo.plist"];
NSDictionary *contentInfo = [NSDictionary dictionaryWithContentsOfFile:contentInfoPath];

NSString *userInfo = [contentInfo objectForKey:@"UserInfo"];

非常感谢您。

1 个答案:

答案 0 :(得分:0)

您不能为Apple服务器中托管的商店存储自定义数据。您只能将数据存储在自己的服务器中,并通过在应用程序购买receipt中映射来自苹果公司的original_transaction_id进行映射。