Файлы PKPass заменяются в Passbook файлами в том же приложении

Мое приложение занимается загрузкой купонов и сохранением в Passbook. Но каждый раз, когда я загружаю другой купон, файл заменяется на Passbook.

Ниже приведен мой код для добавления моих купонов в Passbook:

Шаг 1: добавлена ​​структура «PassKit» в проект и импортирована.

Шаг 2: добавлено «PKAddPassesViewControllerDelegate» в мой файл h.

Шаг 3 :

- (void) generatePass {

if (![PKPassLibrary isPassLibraryAvailable]) {
    [[[UIAlertView alloc] initWithTitle:@"Error"
                                message:@"PassKit not available"
                               delegate:nil
                      cancelButtonTitle:@"Pitty"
                      otherButtonTitles: nil] show];
    return;
}
else {

    NSData *passData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://(url).pkpass"]];

    NSError* error = nil;
    PKPass *newPass = [[PKPass alloc] initWithData:passData
                                             error:&error];
    if (error!=nil) {
        [[[UIAlertView alloc] initWithTitle:@"Passes error"
                                    message:[error
                                             localizedDescription]
                                   delegate:nil
                          cancelButtonTitle:@"Ooops"
                          otherButtonTitles: nil] show];
        return;
    }

    PKAddPassesViewController *addController =
    [[PKAddPassesViewController alloc] initWithPass:newPass];

    addController.delegate = self;
    [self presentViewController:addController
                       animated:YES
                     completion:nil];
}
}

person Ambili B Menon    schedule 14.02.2014    source источник
comment
У них разные серийные номера?   -  person Tomas McGuinness    schedule 14.02.2014


Ответы (1)


Индексы Passbook проходят через serialNumber и passTypeIdentifier. При добавлении прохода, если проход с совпадающими serialNumber и passTypeIdentifier уже существует в библиотеке проходов пользователя, этот проход будет перезаписан добавляемым проходом.

Чтобы добавить несколько проходов для одного и того же passTypeIdentifer, вам нужно создать уникальный serialNumber для каждого нового прохода.

person PassKit    schedule 14.02.2014