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

Posted

技术标签:

【中文标题】在 Objective C 中使用 Apple 托管的内容上传/下载数据【英文标题】:Upload/download data using Apple hosted content in Objective C 【发布时间】:2019-03-07 10:10:42 【问题描述】:

我正在开发一个包含非消耗性应用内购买的应用,并使用 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),如图像

我可以使用“objectforkey”上传/下载这些参数吗

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

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

非常感谢。

【问题讨论】:

【参考方案1】:

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

【讨论】:

我已编辑问题,请再次检查。谢谢。

以上是关于在 Objective C 中使用 Apple 托管的内容上传/下载数据的主要内容,如果未能解决你的问题,请参考以下文章

来自Apple Maps for Objective C的Google Maps自动完成功能?

如何在 Objective C 中对齐内存?

如何在混合代码 Objective-C/C++ 文件(.mm 文件)中使用 PHPhotoLibrary?

Objective C 中的 NSLocalizedString

如何在 iOS Objective-C 中集成“使用 Apple 登录”流程?

AudioUnit Render 回调中的 Objective-C/Swift 用法