Stripe iOS SDK - Pengiriman jenis penunjuk blok tidak kompatibel

22

Stripe SDK menyebabkan kegagalan. Kesalahan spesifik adalah:

Jenis penunjuk blok yang tidak kompatibel mengirim '__strong STPAPIResponseBlock _Nonnull' (alias 'void (^ __ strong) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)')

ke parameter tipe 'void (^ _Nonnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

Kode gagal adalah sebagai berikut dalam 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];
}

Semuanya berfungsi dengan baik - dan kemudian saya percaya Xcode diperbarui. Sekarang saya mendapatkan masalah ini. Saya mencoba membangun aplikasi baru dari awal dengan tidak ada di dalamnya selain Stripe SDK (diinstal melalui CocoaPods) dan gagal.

Sebelum saya mengembalikan ke versi Xcode sebelumnya - bantuan apa pun akan sangat dihargai.

Howard G
sumber
Saya seharusnya menyebutkan - Saya menjalankan XCode 11.4 dan menargetkan iOS 13.4
Howard G
1
FYI Anda dapat mengedit pertanyaan untuk memasukkan lebih banyak informasi daripada menambahkan komentar.
Westy92

Jawaban:

27

XCode 11.4 memecahkan stripe pod v19.0 dan diperbaiki di v19.0.1
untuk memutakhirkan stripe pod, hapus podfile.lockdan lakukan pod install.

Rohit Funde
sumber
Saya mencoba langkah Anda tetapi saya tidak menginstal v19.0.1.
Emre Değirmenci
dapatkah Anda mencobapod install --repo-update
Rohit Funde
11

Perbarui dengan perbaikan : "Kami telah merilis v14.0.1, v15.0.2, v17.0.3, dan v19.0.1 ke Cocoapods dengan perbaikan untuk masalah ini.": Https://github.com/stripe/stripe-ios/issues / 1525 # issuecomment-604037716

Info posting yang lebih lama :

Ini diperbaiki oleh Stripe dalam perubahan ini: https://github.com/stripe/stripe-ios/pull/1526

Jika Anda terjebak pada versi Stripe yang lebih lama, Anda dapat mencoba menerapkan dua perubahan pada versi lokal Anda. (Perubahan di https://github.com/stripe/stripe-ios/pull/1526/files ).

Graham Perks
sumber
7

Saya melakukan ini:

di Podfile.lock saya telah mengubah - Stripe (19.0.0) menjadi - Stripe (19.0.1) dan kemudian di terminal di direktori ios menjalankan "pod update Stripe" . Saya menggunakan bergetar dan bagi saya itu berhasil.

Amir Vazirifar
sumber
1

Juga berlari ke ini, tetapi saya pada versi v14 dari pod stripe. Satu-satunya opsi yang dapat saya temukan untuk orang-orang di posisi saya adalah kembali ke xcode 11.3.1.

peterholcomb
sumber
3
Anda dapat menundukkan versi pod Stripe Anda ke 14.0.1. Mereka merilis perbaikan dalam versi itu
kamwoz
0

Anda dapat mengatur stripe SDK Anda ke Versi 19.0.1 untuk memperbaiki masalah ini.

pod 'Stripe', '~> 19.0.1'

ATAU orang lain memperbarui strip stripe Anda ke versi terbaru dengan perintah pod update

Mubashshir
sumber