MKStoreKit 自动续订订阅到期日期始终返回当前日期

问题描述

使用 MKStoreKit 进行自动续订订阅。在沙盒中成功购买。问题是购买日期和到期日期始终记录为相同,或比当前日期晚 1 小时。对于 accelerated sandbox times,我希望 [[MKStoreKit sharedKit] expiryDateForProduct:@"211112"];[NSDate date] 提前 30 分钟购买,因为这是六个月的购买。我得到的当前日期正好比交易晚了 1 小时。

购买记录:

Transaction date is 2021-07-30 4:15:07 pm +0000
Subscription end date is Fri Jul 30 17:15:07 2021

重新加载时,日志显示订阅到期日期和当前日期完全相同

重新加载日志:

 1.  Current time and date:  Fri Jul 30 17:02:42 2021
 2.  Expiry date for subscription 6 months = Fri Jul 30 17:02:42 2021

从 MKStoreKit 中的代码来看,似乎购买日期可能返回 NULL 并返回当前日期

-(NSDate*) expiryDateForProduct:(Nsstring*) productId {

  NSNumber *expiresDateMs = self.purchaseRecord[productId];
  if ([expiresDateMs isKindOfClass:NSNull.class]) {
    return NSDate.date;
  } else {
    return [NSDate dateWithTimeIntervalSince1970:[expiresDateMs doubleValue] / 1000.0f];
  }
}

[[MKStoreKit sharedKit] valueForKey:@"purchaseRecord"] 购买退货 <null>

解决方法

MKStorekitConfigs.plist 中的应用机密不正确