Stripe iOS SDK - отправка несовместимых типов указателей блоков

22

Stripe SDK вызывает сбой сборки. Конкретная ошибка:

Несовместимые типы указателей блоков, отправляющие «__strong STPAPIResponseBlock _Nonnull» (иначе void (^ __ strong) (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
Говард Дж
1
К вашему сведению, вы можете отредактировать вопрос, добавив больше информации вместо добавления комментариев.
Westy92

Ответы:

27

XCode 11.4 сломал стрип-стрип v19.0, и он был исправлен в v19.0.1,
чтобы обновить стрип-стрип , удалить ваш podfile.lockи сделать pod install.

Рохит Фунд
источник
Я пытаюсь ваши шаги, но я не устанавливаю v19.0.1.
Emre Değirmenci
Можете ли вы попробоватьpod install --repo-update
Рохит Фунд
11

Обновление с исправлениями : «Мы выпустили версии 14.0.1, v15.0.2, v17.0.3 и v19.0.1 для Cocoapods с исправлениями для этой проблемы.»: Https://github.com/stripe/stripe-ios/issues / 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 Stripe» . Я использую флаттер, и у меня это сработало.

Амир Вазирифар
источник
1

Также столкнулся с этим, но я на версии v14 стручка полосы. Единственный вариант, который я могу найти для людей в моем положении, это вернуться к Xcode 11.3.1.

peterholcomb
источник
3
Вы можете увеличить версию Stripe pod до 14.0.1. Они выпустили исправление в этой версии
kamwoz
0

Чтобы устранить эту проблему, вы можете установить в Stripe SDK версию 19.0.1.

модуль 'Stripe', '~> 19.0.1'

ИЛИ еще обновите свой стрип-модуль до последней версии с помощью команды обновления.

Mubashshir
источник
0

У меня была эта проблема тоже, это было обновление XCode 11.4, и я работал Stripe v15.0.1.

Я только что обновил свою версию Stripe до версии 15.0.2. В зависимости от вашей версии вы можете проверить это: https://github.com/stripe/stripe-ios/issues/1525#issuecomment-604037716

Эрик Себастьян
источник