Stripe iOS SDK - การส่งชนิดตัวชี้บล็อกที่เข้ากันไม่ได้


22

Stripe SDK ทำให้เกิดความล้มเหลวในการสร้าง ข้อผิดพลาดเฉพาะคือ:

ประเภทของบล็อกพอยน์เตอร์ที่เข้ากันไม่ได้ส่ง '__strong STPAPIResponseBlock _Nonnull' (aka 'void (^ __ strong) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong __strong, NSError * _Nullable __strong)')

ถึงพารามิเตอร์ประเภท 'void (^ _Nonnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

รหัสที่ล้มเหลวคือต่อไปนี้ภายใน 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];
}

ทุกอย่างทำงานได้ดี - จากนั้นฉันเชื่อว่า Xcode ได้รับการอัปเดต ตอนนี้ฉันได้รับปัญหานี้ ฉันพยายามสร้างแอพใหม่ตั้งแต่เริ่มต้นโดยไม่มีอะไรอยู่ในนั้นอีกแล้ว Stripe SDK (ติดตั้งผ่าน CocoaPods) และนั่นล้มเหลว

ก่อนที่ฉันจะย้อนกลับไปเป็น Xcode รุ่นก่อนหน้าความช่วยเหลือใด ๆ ก็จะได้รับการชื่นชมมาก


ฉันควรจะกล่าวถึง - ฉันใช้ XCode 11.4 และกำหนดเป้าหมาย iOS 13.4
Howard G

1
FYI คุณสามารถแก้ไขคำถามเพื่อรวมข้อมูลเพิ่มเติมแทนที่จะเพิ่มความคิดเห็น
Westy92

คำตอบ:


26

XCode 11.4 ยากจน v19.0 ลายฝักและจะได้รับการแก้ไขใน v19.0.1
ที่จะอัพเกรดฝักแถบลบของคุณและทำpodfile.lockpod install


ฉันลองขั้นตอนของคุณแล้ว แต่ไม่ได้ติดตั้ง v19.0.1
Emre Değirmenci

คุณลองได้ไหมpod install --repo-update
Rohit Funde

11

อัปเดตพร้อมการแก้ไข : "เราได้เปิดตัว v14.0.1, v15.0.2, v17.0.3 และ v19.0.1 ให้กับ Cocoapods พร้อมการแก้ไขสำหรับปัญหานี้": https://github.com/stripe/stripe-ios/issues / 1525 # issuecomment-604037716

ข้อมูลโพสต์เก่า :

สิ่งนี้ได้รับการแก้ไขโดย Stripe ในการเปลี่ยนแปลงนี้: https://github.com/stripe/stripe-ios/pull/1526

หากคุณติดอยู่กับ Stripe รุ่นเก่ากว่าคุณสามารถลองใช้การเปลี่ยนแปลงทั้งสองกับเวอร์ชันท้องถิ่นของคุณ (การเปลี่ยนแปลงที่https://github.com/stripe/stripe-ios/pull/1526/files )


7

ฉันทำอย่างนี้:

ในPodfile.lockฉันมีการเปลี่ยนแปลง - ลาย (19.0.0)ไป - ลาย (19.0.1)และจากนั้นใน terminal ในไดเรกทอรีของ iOS วิ่ง"การปรับปรุงฝักลาย" ฉันใช้ความพลิ้วและสำหรับฉันมันใช้งานได้


1

ยังวิ่งเข้าไปในนี้ แต่ฉันอยู่ในรุ่น v14 ของแถบฝัก ตัวเลือกเดียวที่ฉันสามารถค้นหาได้สำหรับผู้ที่อยู่ในตำแหน่งของฉันคือเปลี่ยนกลับเป็น xcode 11.3.1


3
คุณสามารถชนรุ่น Stripe pod ของคุณเป็น 14.0.1 พวกเขาปล่อยตัวแก้ไขในเวอร์ชั่นนั้น
kamwoz

0

คุณสามารถตั้งค่าแถบ SDK ของคุณเป็นเวอร์ชัน 19.0.1 เพื่อแก้ไขปัญหานี้

พ็อด 'Stripe', '~> 19.0.1'

หรืออัปเดตพ็อดสไทรพ์ของคุณเป็นเวอร์ชันล่าสุดโดยใช้คำสั่ง pod update


0

ฉันมีปัญหานี้เช่นกันมันเป็นอัพเดต xcode 11.4 และฉันกำลังใช้แถบ v15.0.1

ฉันเพิ่งอัปเดตเวอร์ชันแถบของฉันเป็น v15.0.2 ขึ้นอยู่กับรุ่นของคุณคุณสามารถตรวจสอบสิ่งนี้: https://github.com/stripe/stripe-ios/issues/1525#issuecomment-604037716

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.