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.

Howard G
fuente
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.

Rohit Funde
fuente
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 ).

Graham Perks
fuente
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ó.

Amir Vazirifar
fuente
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.

peterholcomb
fuente
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.

Mubashshir
fuente