Stripe iOS SDK - отправка несовместимых типов указателей блоков - PullRequest
22 голосов
/ 25 марта 2020

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

Несовместимые типы указателей блоков, отправляющие '__strong STPAPIResponseBlock _Nonnull' (иначе void (^ __ strong) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nulstrong __strong) 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 - любая помощь будет принята с благодарностью.

Ответы [ 6 ]

27 голосов
/ 25 марта 2020

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

11 голосов
/ 25 марта 2020

Обновление с исправлениями : «Мы выпустили версии 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 голосов
/ 25 марта 2020

Я сделал это:

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

1 голос
/ 25 марта 2020

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

0 голосов
/ 29 апреля 2020

У меня тоже была эта проблема, это было обновление xcode 11.4, и я запускал stripe v15.0.1.

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

0 голосов
/ 07 апреля 2020

Вы можете установить SDK для полосы в версию 19.0.1, чтобы решить эту проблему.

pod 'Stripe', '~> 19.0.1'

ИЛИ обновите свой модуль чередования до последняя версия по команде обновления pod.

...