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

22

Le SDK Stripe provoque un échec de génération. 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, je reçois ce problème. J'ai essayé de créer une nouvelle application à partir de zéro avec rien d'autre que le SDK Stripe (installé via CocoaPods) et cela n'a pas réussi.

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

Howard G
la source
J'aurais dû mentionner - J'utilise XCode 11.4 et je cible iOS 13.4
Howard G
1
Pour info, vous pouvez modifier une question pour inclure plus d'informations au lieu d'ajouter des commentaires.
Westy92

Réponses:

27

XCode 11.4 a cassé le pod stripe v19.0 et il a été corrigé dans la version 19.0.1
pour mettre à niveau le pod stripe, supprimez votre podfile.locket faites pod install.

Rohit Funde
la source
J'essaie vos étapes mais je n'installe pas la v19.0.1.
Emre Değirmenci
pouvez-vous essayerpod install --repo-update
Rohit Funde
11

Mise à jour avec correctifs : "Nous avons publié les versions 14.0.1, v15.0.2, v17.0.3 et v19.0.1 pour Cocoapods avec des correctifs pour ce problème.": Https://github.com/stripe/stripe-ios/issues / 1525 # issuecomment-604037716

Informations sur les articles plus anciens :

Ceci est corrigé par Stripe dans ce changement: https://github.com/stripe/stripe-ios/pull/1526

Si vous êtes bloqué sur une ancienne version de Stripe, vous pouvez essayer d'appliquer les deux modifications à votre version locale. (Modifications sur https://github.com/stripe/stripe-ios/pull/1526/files ).

Graham Perks
la source
7

J'ai fait ça:

dans Podfile.lock j'ai changé - Stripe (19.0.0) en - Stripe (19.0.1) puis dans le terminal dans le répertoire d'ios, j'ai exécuté "pod update Stripe" . J'utilise le flottement et pour moi, cela a fonctionné.

Amir Vazirifar
la source
1

J'ai également rencontré cela, mais je suis sur la version v14 du pod stripe. La seule option que je peux trouver pour les personnes dans ma position est de revenir à xcode 11.3.1.

peterholcomb
la source
3
Vous pouvez transférer la version de votre pod Stripe vers 14.0.1. Ils ont publié un correctif dans cette version
kamwoz
0

Vous pouvez définir votre SDK stripe sur la version 19.0.1 pour résoudre ce problème.

pod 'Stripe', '~> 19.0.1'

OU sinon mettez à jour votre pod stripe vers la dernière version par la commande de mise à jour du pod.

Mubashshir
la source