web-dev-qa-db-fra.com

Stripe iOS SDK - Envoi de types de pointeurs de bloc incompatibles

Le SDK Stripe provoque un échec de compilation. L'erreur spécifique est:

Types de pointeurs de bloc incompatibles envoyant '__strong STPAPIResponseBlock _Nonnull' (alias 'void (^ __ strong) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)')

au paramètre de type 'void (^ _Nonnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

Le code sur lequel il échoue est le suivant dans 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];
}

Tout fonctionnait bien - et je crois que Xcode a été mis à jour. Maintenant, j'ai ce problème. J'ai essayé de créer une nouvelle application à partir de zéro sans rien d'autre que le SDK Stripe (installé via CocoaPods) et cela a échoué.

Avant de revenir à une version antérieure de Xcode - toute aide serait très appréciée.

27
Howard G

J'ai eu ce problème aussi, c'était la mise à jour de xcode 11.4 et j'utilisais stripe v15.0.1.

Je viens de mettre à jour ma version Stripe vers la v15.0.2. Selon votre version, vous pouvez vérifier ceci: https://github.com/stripe/stripe-ios/issues/1525#issuecomment-604037716

0
Eric Sebastian