React-native-iap: لا يمكن العمل على iOS بسبب "اسم نوع غير معروف" SKPaymentDiscount "

تم إنشاؤها على ٢٥ أبريل ٢٠١٩  ·  38تعليقات  ·  مصدر: dooboolab/react-native-iap

نسخة من رد فعل - أصلية - IAP

2.4.9

نسخة من رد الفعل الأصلي

0.59.5

المنصات التي واجهت الخطأ فيها (IOS أو Android أو كليهما؟)

iOS

سلوك متوقع

يبني التطبيق

السلوك الفعلي

التطبيق لا يبني

بيئة مختبرة (محاكي؟ جهاز حقيقي؟)

محاكي

خطوات إعادة إنتاج السلوك

ما عليك سوى رد فعل أصلي run-ios مع الإصدارات المذكورة أعلاه من رد فعل أصلي iap و React أصلي

هذا هو الخطأ الذي أحصل عليه بالضبط:

/node_modules/react-native-iap/ios/RNIapIos.m:167:5: unknown type name 'SKPaymentDiscount'; did you mean 'SKProductDiscount'?

حاولت إعادة تسمية SKPaymentDiscount إلى SKProductDiscount فقط لأرى وكنت أتلقى أخطاء مختلفة.

اسمحوا لي أن أعرف إذا كان لديك أي أسئلة.

⌛️ legacy 📱 iOS

التعليق الأكثر فائدة

أواجه هذه المشكلة أيضًا في الإصدار 2.4.11 . الإصدار الوحيد الذي نجح قبل إجراء hyochan للتغييرات هو 2.4.8

ال 38 كومينتر

لم أختبر هذا بعد في إصدار ios الأخير. أشعر أنه كانت هناك تغييرات في الإصدار الأحدث. هل يمكنك أن تعطينا PR إن أمكن؟

hyochan سأكون سعيدًا بذلك ، لكنني لست متأكدًا بنسبة 100٪ كيف سأفعل ذلك. هل يمكنك إرشادي من خلال إعداد علاقات عامة لكم جميعًا؟ لا أعرف ماذا سيكون الإصلاح

@ ndejesus1227 هل تعتقد أنك وجدت الحل لهذه المشكلة؟

@ هيوشان لا ، لم أفعل. لقد بذلت محاولات لإصلاحها لكنني أعرف فقط JavaScript. يجب أن أجد شخصًا ما يساعدني على معرفة بنظام iOS الأصلي أفضل بكثير مما أعرفه

@ ndejesus1227 في الواقع ، تم تنفيذ هذه الميزة بواسطة renatoalencar في # 455. لا يمكنني المساعدة في هذا أكثر من ذلك حاليا.

شكرا @ هيوشان.

renatoalencar ما هو إصدار رد الفعل الأصلي الذي تعمل عليه؟ لست متأكدًا مما إذا كان يجب عليّ تخفيض مستوى رد فعل - أصلية - iap أم RN في الوقت الحالي

مرحبًا @ ndejesus1227 ، هذا علي ، آسف. ما يحدث بالفعل هو أن إصدار iOS الخاص بك أقل من 12.2. كما توضح وثائق Apple ، فإن SKPaymentDiscount متاح فقط لنظام التشغيل iOS 12.2+.

كنت أفترض التحقق من إصدار iOS الفعلي ، لكن انتهى بي الأمر بالنسيان.

renatoalencar آه ، حسنًا. منطقي. هل لديك أي فكرة عن متى يمكنك إصلاح ذلك؟ يمكنك أن تأخذ وقتك ، مجرد فضول

سأقوم بالرجوع إلى إصدار سابق قبل هذا التحديث حتى تتم معالجة هذا الأمر hyochanrenatoalencar

أواجه هذه المشكلة أيضًا في الإصدار 2.4.11 . الإصدار الوحيد الذي نجح قبل إجراء hyochan للتغييرات هو 2.4.8

شكرًا على الشرح ggdegreat ، لذا سأذهب إلى 2.4.8!

كنت أواجه نفس المشكلة ، ويمكنني أن أؤكد أن 2.4.8 يعمل على إصلاح المشكلة. شكرا للمساعدة!

لذلك لن تكون الحزمة متوافقة مع ios أقل من 12 من 2.4.9 . لقد قمت بتحديث الملف التمهيدي للهجرة .

هل ستنجح عملية الدفع باستخدام Apple Pay (وعدم وجود نافذة منبثقة)؟

نحتاج إلى الحفاظ على مزامنة كلا الإصدارين إذا أردنا استخدامها في مكتبة الإنتاج.

لا يمكننا الاختيار بين الإصدار> 12 أو الإصدار <12 للأعمال!

ربما هناك شيء لا أحصل عليه! شكرا لعملك @ hyochan !

كان لدي نفس المشكلة - تم حلها الآن. لأكثر من عام لم أفتح Xcode. الآن أخذت جهاز iphone 6s الخاص بي وقمت بالترقية إلى البرامج الثابتة 12.3.1 ؛ كان جهاز mac الخاص بي لا يزال يعمل على "Sierra" ، لذا لم يكن تثبيت Xcode الخاص بي متوافقًا مع أحدث إصدار من نظام التشغيل iOS. عند محاولة تشغيل التعليمات البرمجية على جهاز iPhone المتصل بـ macbook ، تلقيت هذه الرسائل. ثم الحل:

  • لقد قمت بترقية نظام التشغيل Mac الخاص بي إلى 10.14.5
  • أقوم بترقية Xcode إلى 10.2.1
  • أنا أستخدم رد فعل - أصلية - iap 2.5.5
  • iPhone 6S يعمل بنظام iOS 12.3.1
  • مقذوف معرض إكسبو مع SDK 32.0.0 ، وهذا يعني إكسبو معدل - رد فعل أصلي على أساس 0.57

---> الآن كل شيء يعمل

إذن ، التطبيق الذي يستخدم هذه المكتبة لن يعمل عند التشغيل على iOS <12.2؟

سيكون من 3.0.0

شكرًا ، ستبقى في 2.4.8 حتى إصدار 3.0.0

أطلقتDataGreed للتو 3.0.0 الآن.

hyochan لا يزال بإمكاننا رؤية مشكلة SKPaymentDiscount على الإصدار 3.0.0.

هل هناك شيء مفقود؟ لقد قمنا للتو بتحديث الإصدار على package.json ، وقمنا بتثبيت وتنظيف / إنشاء التطبيق في xcode. لا يزال الخطأ يظهر.

danidfm ما هو هدف البناء في ios ؟ حاول أيضًا إزالة node_modules بالكامل قبل npm install

هدف البناء هو 11.0 وقمنا بإزالة مجلد node_modules.

نفس المشكلة معي - حاولت 3.0.0 ، لكنها تراجعت إلى 2.4.8

(بالمناسبة ، قبل ذلك جربت إصدارات 3.0.0 RC وما زلت أعاني من نفس الخطأ)

هل يمكنك جميعًا اختبار مشروع IamExample ومعرفة الفرق مع مشروعك؟ أريد أن أكون واضحًا عند النظر إلى نفس الرموز.

مرحبًا @ ndejesus1227 ، هذا علي ، آسف. ما يحدث بالفعل هو أن إصدار iOS الخاص بك أقل من 12.2. كما توضح وثائق Apple ، فإن SKPaymentDiscount متاح فقط لنظام التشغيل iOS 12.2+.

كنت أفترض التحقق من إصدار iOS الفعلي ، لكن انتهى بي الأمر بالنسيان.

أريد فقط أن أقول إنه أرسل حرفياً أنه كان من المفترض أن يتحقق من الإصدار ويتجنب هذه المشكلة ، لكنه نسي. كان ينبغي ألا يتم دمج طلب السحب الخاص به في طلب رئيسي

محاولة تشغيل مشروع في Xcode لجهاز iPhone الخاص بي مع iOS v12.3.1
نفس الخطأ ، باستخدام رد الفعل الأصلي - iap v3.2.2.
الذهاب إلى 2.4.8 (بناء ناجح)

أعتقد أن السبب هو تثبيت إصدار iOS على الجهاز

هذا غريب جدًا ، لأن البعض منهم أكد بالفعل أن البناء على ما يرام (وأنا كذلك). إذا كنت تواجه مشكلة في الترقية ، يرجى محاولة إزالة ios/build ثم المحاولة مرة أخرى.

لقد حاولت للتو البناء الآن. تحقق IapExample .
image

hyochan شكرًا لك على دعمك الكبير!

لقد جربت للتو جميع التلميحات المذكورة في هذه المشكلة (تمت إزالة node_modules تمامًا قبل تثبيت npm ، والتطبيق النظيف ، وإزالة ios / build). لسوء الحظ ، ما زلت أتلقى هذه المشكلة مع هدف الإصدار 11.2 ورد الفعل الأصلي - iap v3.2.2. حاولت أيضًا الرجوع إلى الإصدار 2.4.8 ، مما يؤدي إلى بناء ناجح. علاوة على ذلك ، حاولت إعداد IapExample ولكن انتهى بي الأمر في هذه المشكلة الأصلية المتفاعلة (https://github.com/facebook/react-native/issues/25252)

أواجه نفس المشكلة على iMac يعمل بنظام macOS 10.13. جهاز macbook الخاص بي الذي يعمل بنظام التشغيل 10.15 يعمل بشكل جيد ،

ربما لا يعمل إصدار ماك الأقدم؟ 🤔

murilobast إصدارات xCode مختلفة؟

تحقق من إصدار نظام التشغيل #if __IPHONE_12_2 كتلة رمز الخطأ وأعد البناء

`#if __IPHONE_12_2

    SKPaymentDiscount *discount = [[SKPaymentDiscount alloc]
                                   initWithIdentifier:discountOffer[@"identifier"]
                                   keyIdentifier:discountOffer[@"keyIdentifier"]
                                   nonce:[[NSUUID alloc] initWithUUIDString:discountOffer[@"nonce"]]
                                   signature:discountOffer[@"signature"]
                                   timestamp:discountOffer[@"timestamp"]
                                   ];

    SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:product];
    payment.applicationUsername = usernameHash;
    payment.paymentDiscount = discount;

    [[SKPaymentQueue defaultQueue] addPayment:payment];
    [self addPromiseForKey:RCTKeyForInstance(payment.productIdentifier) resolve:resolve reject:reject];
    #endif `

مثله

كنت أواجه هذه المشكلة. أدى تحديث xcode الخاص بي من 10.1 إلى 10.2.1 إلى إصلاح مشكلتي. أنا قادر على بناء مشروعي الآن.

نفس المشكلة مع Xcode 10.1 ، لا يمكنني تحديث XCode إلى 10.2 لأنه يحتاج إلى OSX 10.14.3 ، لا يدعمه جهاز iMac القديم الذي توقف عند 10.13.6.

@ lc3t35 ، كيف أنشأت مشروع iOS باستخدام Xcode 10.1؟

@ liudmyla-schastlyvets لا يمكنني الإنشاء باستخدام 10.1 ، كان علي استخدام جهاز كمبيوتر آخر مع أحدث إصدار من Xcode :(

رد فعل أصلي: 0.59.0
رد فعل أصلي- IAP: 2.4.8
Xcode: 10.1
تم بناء المشروع بنجاح. شكرا

نعم و انا ايضا ! عمل ممتاز من المشرفين!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات