Существует одобренный Apple способ сделать это на iOS и MacOS. Первоначально загруженную версию приложения можно получить из квитанции, используя информационный ключ Original Purchased Version
. Затем вы можете решить, следует ли разблокировать функции, если эта версия предшествует переходу на IAP.
Например, когда вы получили информацию о квитанции:
NSArray *versionsSoldWithoutIAP = @[@"1.0", @"1.1", @"1.2", @"1.3"];
NSString *originalPurchasedVersion = [receiptInfoDict objectForKey:@"Original Purchased Version"];
for (NSString *version in versionsSoldWithoutIAP) {
if ([version isEqualToString:originalPurchasedVersion]) {
// user paid for the currently installed version
}
}
Для получения дополнительной информации см. Видео WWDC 13 Использование квитанций для защиты ваших цифровых продаж . В 5:40 ведущий комментирует: «Я думаю, что самая захватывающая вещь в чеке в этом году, особенно для вас, ребята, если у вас есть платное приложение в магазине, это то, что мы включили в чек информацию, которая позволит перейдите от платного приложения к бесплатному приложению с покупками в приложении, не оставляя позади всех клиентов, которые уже заплатили за ваше приложение. "