Stripe iOS SDK: envío de tipos de puntero de bloque incompatible


22

El SDK de Stripe está causando un error de compilación. El error específico es:

Tipos de puntero de bloque incompatibles que envían '__strong STPAPIResponseBlock _Nonnull' (también conocido como 'void (^ __ strong) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)')

al parámetro de tipo 'void (^ _Nnnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

El código en el que falla es el siguiente dentro de 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];
}

Todo funcionaba bien, y luego creo que Xcode se actualizó. Ahora tengo este problema. Traté de crear una nueva aplicación desde cero sin nada más que el SDK de Stripe (instalado a través de CocoaPods) y eso no pudo.

Antes de volver a una versión anterior de Xcode, cualquier ayuda sería muy apreciada.


Debería haber mencionado: estoy ejecutando XCode 11.4 y apuntando a iOS 13.4
Howard G

1
Para su información, puede editar una pregunta para incluir más información en lugar de agregar comentarios.
Westy92

Respuestas:


27

XCode 11.4 rompió el pod de banda v19.0 y se arregló en v19.0.1
para actualizar el pod de banda, eliminar tu podfile.locky hacer pod install.


Intento sus pasos pero no instalo v19.0.1.
Emre Değirmenci

puedes probarpod install --repo-update
Rohit Funde

11

Actualización con correcciones : "Hemos lanzado v14.0.1, v15.0.2, v17.0.3 y v19.0.1 a Cocoapods con correcciones para este problema": https://github.com/stripe/stripe-ios/issues / 1525 # issuecomment-604037716

Información de publicación anterior :

Stripe corrige esto en este cambio: https://github.com/stripe/stripe-ios/pull/1526

Si está atascado en una versión anterior de Stripe, puede intentar aplicar los dos cambios a su versión local. (Cambios en https://github.com/stripe/stripe-ios/pull/1526/files ).


7

Hice esto:

en Podfile.lock he cambiado - Stripe (19.0.0) a - Stripe (19.0.1) y luego en la terminal en el directorio de ios ejecutó "pod update Stripe" . Estoy usando flutter y para mí funcionó.


1

También me encontré con esto, pero estoy en la versión v14 del pod de rayas. La única opción que puedo encontrar para las personas en mi posición es volver a xcode 11.3.1.


3
Puede subir su versión de Pod Stripe a 14.0.1. Lanzaron el arreglo en esa versión
kamwoz

0

Puede configurar su SDK de stripe en la Versión 19.0.1 para solucionar este problema.

pod 'Stripe', '~> 19.0.1'

O bien, actualice su pod de banda a la última versión mediante el comando de actualización de pod.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.