Stripe iOS SDK - надсилання несумісних типів покажчиків блоків


22

Смуга SDK викликає збій у складанні. Конкретна помилка:

Несумісні типи вказівників блоку, що надсилають '__strong STPAPIResponseBlock _Nonnull' (він же недійсний (^ __ сильний) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong) ')

до параметра типу 'void (^ _Nonnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

Код, на який він не працює, наступний у STPAPIClient.m ...

- (NSURLSessionDataTask *)retrieveSourceWithId:(NSString *)identifier clientSecret:(NSString *)secret responseCompletion:(STPAPIResponseBlock)completion {
    NSString *endpoint = [NSString stringWithFormat:@"%@/%@", APIEndpointSources, identifier];
    NSDictionary *parameters = @{@"client_secret": secret};
    return [STPAPIRequest<STPSource *> getWithAPIClient:self
                                               endpoint:endpoint
                                             parameters:parameters
                                           deserializer:[STPSource new]
                                             completion:completion];
}

Все працювало чудово - і тоді я вважаю, що Xcode оновився. Зараз у мене з’являється ця проблема. Я спробував створити нову програму з нуля, не маючи нічого іншого, крім Stripe SDK (встановленого через CocoaPods), і цього не вдалося.

Перш ніж перейти до попередньої версії Xcode - будь-яка допомога буде дуже вдячна.


Я мав би згадати - я запускаю XCode 11.4 і націлюю на iOS 13.4
Говард G

1
FYI, ви можете відредагувати питання, щоб включити більше інформації замість додавання коментарів.
Westy92

Відповіді:


26

XCode 11.4 зламав смужку смуги v19.0, і це було виправлено в v19.0.1,
щоб оновити смужку стручка, видалити своє podfile.lockі зробити pod install.


Я намагаюся виконувати ваші дії, але не встановлюю v19.0.1.
Emre Değirmenci

ви можете спробуватиpod install --repo-update
Rohit Funde

11

Оновлення з виправленнями : "Ми випустили версії v14.0.1, v15.0.2, v17.0.3 та v19.0.1 до Cocoapods з виправленнями цієї проблеми.": Https://github.com/stripe/stripe-ios/isissue / 1525 # issuecomment-604037716

Інформація про старіші повідомлення :

Це виправлено Stripe у цій зміні: https://github.com/stripe/stripe-ios/pull/1526

Якщо ви затрималися на старій версії Stripe, ви можете спробувати застосувати дві зміни до вашої локальної версії. (Зміни за посиланням https://github.com/stripe/stripe-ios/pull/1526/files ).


7

Я зробив це:

в Podfile.lock я змінив - Stripe (19.0.0) на - Stripe (19.0.1), а потім у терміналі в каталозі ios пробіг "pod update update Stripe" . Я використовую флеттер і для мене це спрацювало.


1

Також наткнувся на це, але я перебуваю на версії v14 смугастого стручка. Єдиний варіант, який я можу знайти для людей, які займають моє становище, - це повернутися до xcode 11.3.1.


3
Ви можете зіткнути версію Stripe-стручки до 14.0.1. Вони випустили виправлення в цій версії
kamwoz

0

Ви можете встановити свій SDK для смужок на версію 19.0.1, щоб вирішити цю проблему.

pod 'Stripe', '~> 19.0.1'

АБО інакше оновіть смужку смуги до останньої версії за допомогою команди оновлення pod.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.