Stripe iOS SDK - Inkompatibles Senden von Blockzeigertypen

22

Das Stripe SDK verursacht einen Build-Fehler. Der spezifische Fehler ist:

Inkompatible Blockzeigertypen, die '__strong STPAPIResponseBlock _Nonnull' senden (auch bekannt als 'void (^ __ strong)) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)')

zum Parameter vom Typ 'void (^ _Nonnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

Der Code, bei dem ein Fehler auftritt, ist der folgende in 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];
}

Alles hat gut funktioniert - und dann glaube ich, dass Xcode aktualisiert wurde. Jetzt bekomme ich dieses Problem. Ich habe versucht, eine neue App von Grund auf neu zu erstellen, in der nichts anderes als das Stripe SDK (über CocoaPods installiert) enthalten ist.

Bevor ich zu einer früheren Version von Xcode zurückkehre, wäre jede Hilfe sehr dankbar.

Howard G.
quelle
Ich hätte erwähnen sollen - ich verwende XCode 11.4 und ziele auf iOS 13.4 ab
Howard G
1
Zu Ihrer Information können Sie eine Frage bearbeiten, um mehr Informationen aufzunehmen, anstatt Kommentare hinzuzufügen.
Westy92

Antworten:

26

XCode 11.4 hat den Stripe Pod v19.0 beschädigt und in v19.0.1 behoben
, um den Stripe Pod zu aktualisieren, Ihren zu löschen podfile.lockund zu tun pod install.

Rohit Funde
quelle
Ich versuche Ihre Schritte, aber ich installiere nicht v19.0.1.
Emre Değirmenci
können Sie versuchenpod install --repo-update
Rohit Funde
11

Update mit Korrekturen : "Wir haben v14.0.1, v15.0.2, v17.0.3 und v19.0.1 für Cocoapods mit Korrekturen für dieses Problem veröffentlicht.": Https://github.com/stripe/stripe-ios/issues / 1525 # issuecomment-604037716

Ältere Postinfo :

Dies wird von Stripe in dieser Änderung behoben: https://github.com/stripe/stripe-ios/pull/1526

Wenn Sie mit einer älteren Version von Stripe nicht weiterkommen, können Sie versuchen, die beiden Änderungen auf Ihre lokale Version anzuwenden. (Änderungen unter https://github.com/stripe/stripe-ios/pull/1526/files ).

Graham Perks
quelle
7

Ich war das:

in Podfile.lock habe ich - Stripe (19.0.0) in - Stripe (19.0.1) geändert und dann im Terminal im Verzeichnis von ios "pod update Stripe" ausgeführt . Ich benutze Flattern und für mich hat es funktioniert.

Amir Vazirifar
quelle
1

Auch in diese gelaufen, bin aber auf der v14-Version des Stripe Pod. Die einzige Option, die ich für Personen in meiner Position finden kann, ist die Rückkehr zu xcode 11.3.1.

Peterholcomb
quelle
3
Sie können Ihre Stripe Pod-Version auf 14.0.1 erhöhen. Sie haben Fix in dieser Version veröffentlicht
Kamwoz
0

Sie können Ihr Stripe-SDK auf Version 19.0.1 einstellen, um dieses Problem zu beheben.

pod 'Stripe', '~> 19.0.1'

ODER aktualisieren Sie Ihren Stripe-Pod mit dem Befehl pod update auf die neueste Version.

Mubashshir
quelle