Stripe iOS SDK - Wysyłanie niezgodnych typów wskaźników blokowych

22

Stripe SDK powoduje błąd kompilacji. Konkretny błąd to:

Niezgodne typy wskaźników blokowych wysyłające „__strong STPAPIResponseBlock _Nonnull” (alias „void (^ __ strong) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong))

na parametr typu „void (^ _Nonnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong) '

Kod, na którym nie działa, jest następujący w 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];
}

Wszystko działało dobrze - i uważam, że Xcode został zaktualizowany. Teraz dostaję ten problem. Próbowałem zbudować nową aplikację od zera, w której nie było nic oprócz Stripe SDK (zainstalowanego za pośrednictwem CocoaPods), ale to nie powiodło się.

Zanim przejdę do wcześniejszej wersji Xcode - każda pomoc będzie mile widziana.

Howard G.
źródło
Powinienem wspomnieć - korzystam z XCode 11.4 i celuję w iOS 13.4
Howard G
1
Do Twojej wiadomości możesz edytować pytanie, aby dodać więcej informacji zamiast dodawać komentarze.
Westy92

Odpowiedzi:

26

XCode 11.4 zepsuł pasek na paski v19.0 i został naprawiony w wersji 19.0.1,
aby zaktualizować pasek na paski, usunąć go podfile.locki zrobić pod install.

Rohit Funde
źródło
Próbuję wykonać podane kroki, ale nie instaluję wersji 19.1.
Emre Değirmenci
możesz spróbowaćpod install --repo-update
Rohit Funde
11

Aktualizacja z poprawkami : „Wydaliśmy wersje 14.0.1, 15.0.2, 17.0.3 i 19.0.1 dla Cocoapods z poprawkami tego problemu.”: Https://github.com/stripe/stripe-ios/issues / 1525 # emisecomment-604037716

Informacje o starszym poście :

Zostało to naprawione przez Stripe w tej zmianie: https://github.com/stripe/stripe-ios/pull/1526

Jeśli utknąłeś na starszej wersji Stripe, możesz spróbować zastosować dwie zmiany w lokalnej wersji. (Zmiany na https://github.com/stripe/stripe-ios/pull/1526/files ).

Graham Perks
źródło
7

Ja to zrobiłem:

w Podfile.lock zmieniłem - Stripe (19.0.0) na - Stripe (19.0.1), a następnie w terminalu w katalogu iOS uruchomiłem „pod update Stripe” . Używam trzepotania i dla mnie to zadziałało.

Amir Vazirifar
źródło
1

Wpadłem również na to, ale jestem na wersji v14 paska na paski. Jedyną opcją, jaką mogę znaleźć dla osób na mojej pozycji, jest powrót do xcode 11.3.1.

peterholcomb
źródło
3
Możesz podnieść wersję paska Stripe do wersji 14.0.1. Wydali poprawkę w tej wersji
kamwoz
0

Możesz ustawić pasek SDK do wersji 19.0.1, aby rozwiązać ten problem.

pod „Stripe”, „~> 19.0.1”

LUB w innym przypadku zaktualizuj pasek na pasek do najnowszej wersji za pomocą polecenia aktualizacji pod.

Mubashshir
źródło