React-native-iap: iOS 14: getProducts () خطأ غير معروف (RN 0.62.2 - 0.63)

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

يبدو أن RNIap.getProducts () معطلاً في أحدث إصدار من React Native ، ويعيد فقط خطأ غير معروف.

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

4.6.1

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

0.63.0

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

iOS

سلوك متوقع

المنتجات المطلوب جلبها.

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

يتم إرجاع خطأ غير معروف

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

محاكي iOS

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

ما عليك سوى الاتصال بـ RNIap.getProducts () أو RNIap.getSubscriptions ().

📱 iOS 🙏 help wanted

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

ال 50 كومينتر

أواجه هذا أيضًا مع محاكيات iOS التي تعمل بنظام iOS 14.0 ولكن لا أواجه مشكلات مع إصدارات المحاكاة الأخرى (على وجه التحديد ، iOS 13.5).

يبدو أن هذه مشكلة في نهاية Apple مع محاكي iOS 14.0: https://developer.apple.com/forums/thread/125164

وجدت هذا الرابط عبر: https://github.com/dooboolab/react-native-iap/issues/1091

شكراjoeyscarim. لقد تواصلت الآن مع Apple وأنتظر ردود الفعل منهم.

crossbulat نفس المشكلة على iOS 14 ...
رد فعل أصلي - iap - v4.6.1
Xcode - الإصدار 12

YellowBox.js:71 Possible Unhandled Promise Rejection (id: 0): Error: UNKNOWN_ERROR Error: UNKNOWN_ERROR at Object.fn [as getItems] (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:2165:36) at http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:179261:33 at step (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178999:21) at Object.next (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178929:16) at http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178901:69 at tryCallTwo (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3277:7) at doResolve (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3441:15) at new Promise (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:3300:5) at __awaiter (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:178880:12) at ios (http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false:179258:16)

مرحبا جميعا،

نحن نختبر هذا أيضًا. بعد الترقية إلى الإصدار v4.6.1 تقريبًا في كل مرة نواجه "خطأ غير معروف" أيضًا.

Screenshot 2020-09-23 at 09 53 25

مرحبا شباب،
أعتقد أنني وجدت الحل لمشكلتنا. يجب أن تتأكد من تشغيل initConnection .
في المثال الخاص بي ، قمت للتو بوضع requestPurchase/requestSubscription داخل initConnection . من قبل كان يعمل بدونها ، الآن يجب أن يكون.

Hellhiem لدي initConnection وما زلت أتلقى الخطأ.

يؤدي تشغيل الوظيفة التالية إلى التحقق من أن الخطأ لا يزال موجودًا في initConnection ()

  const getProducts = async () => {
      try {
        await RNIap.initConnection();
        const products: RNIap.Product[] = await RNIap.getProducts(IAP_SKUS);
      } catch (err) {
        console.log(err);
      }
  }

crossbulat ماذا يحدث عندما تحاول هذا:

const getProducts = async () => {
    return RNIap.initConnection().then(() => {
      try {
        const products: RNIap.Product[] = RNIap.getProducts(IAP_SKUS);

        return products;
      } catch (err) {
        console.log(err);
      }
    });
  };

لقد صنعت نفس الشيء ولكن داخل then أضع requestPurchase/requestSubscription

Hellhiem لا يزال يحصل على خطأ غير معروف! (هذا هو نفس الكود الخاص بي ولكن استخدم بعد ذلك بدلاً من بناء الجملة غير المتزامن / انتظار).

لقد ألقيت نظرة على واجهات برمجة التطبيقات للوحدة الأصلية ، ويبدو أن الوظيفة getItems() هي نقطة الفشل. هل من الممكن لأحد المطورين الأساسيين التحقق من أن استدعاء API الأصلي يعمل كما هو متوقع على iOS 14؟

Hellhiem لقد جربت الكود الخاص بك ، وما زلت أحصل على نفس الخطأ غير

تبحث شركة Apple للهندسة في الحالة عبر مساعد الملاحظات. سوف أقوم بتحديث هذا الموضوع عندما نحدد ما هي المشكلة.

أواجه هذه المشكلة على محاكي iOS الذي يعمل بنظام iOS 14.0

المشكلة نفسها. لا يمكن لمحاكي IOS 14 مع xcode 12 جلب المنتجات وإلقاء خطأ غير معروف

المشكلة نفسها.

نفس المشكلة لجهاز حقيقي أثناء مراجعة أبل

لدي نفس المشكلة ولكن مع وظيفة getSubscriptions

لقد أجريت بعض الاختبارات ، وبالنسبة لي ، فإن [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers] يعود فارغًا ...

المشكلة نفسها

لديك نفس المشكلة مع getSubscriptions على جانب IOS ، تم طرح UNKNOWN_ERROR ، Xcode 12.0 ، رد الفعل الأصلي 0.62.2

rossbulat أي حظ؟ أنا أواجه نفس المشكلة أيضًا

rossbulat أي حظ؟ أنا أواجه نفس المشكلة أيضًا

هل تستخدم جهاز أو جهاز محاكاة؟

مرحبا devs لقد حللت ذلك. فعلت ما يلي

  1. لقد تأكدت من أنني قبلت جميع البنود والشروط الواردة في اتفاقيات المستخدم من خلال التأكد من أن الحالة نشطة
  2. لقد تأكدت من أن معرف المنتج / الاشتراك في قسم المشتريات داخل التطبيق في تطبيقك محدد على أنه جاهز للإرسال

ملاحظة: كان اختباري على جهاز محلي

المشكلة فقط في iOS 14 Simulator. تعمل الأجهزة الحقيقية.

لقد ساد الهدوء Apple خلال الأسبوع الماضي ، ولم تتم مشاركة أي تحديثات معي.

بالنسبة إلى المحاكاة ، يجب إضافة ملف تكوين StoreKit إلى المشروع وتحديده في مخطط التشغيل. لكن كان لدي هذا الخطأ على الجهاز

المشكلة فقط في iOS 14 Simulator. تعمل الأجهزة الحقيقية.

لقد ساد الهدوء Apple خلال الأسبوع الماضي ، ولم تتم مشاركة أي تحديثات معي.

ربما يقتصر الاختبار الآن في عمليات شراء التطبيقات على الأجهزة الحقيقية ، لأنني لا أستطيع العثور على خيار إضافة اختبار وضع الحماية على محاكي iOS

المشكلة فقط في iOS 14 Simulator. تعمل الأجهزة الحقيقية.

لقد ساد الهدوء Apple خلال الأسبوع الماضي ، ولم تتم مشاركة أي تحديثات معي.

ربما يقتصر الاختبار الآن في عمليات شراء التطبيقات على الأجهزة الحقيقية ، لأنني لا أستطيع العثور على خيار إضافة اختبار وضع الحماية على محاكي iOS

تتم إدارته بواسطة ملف تكوين storekit

ilyasbat لقد اتبعت هذه التعليمات ، ونظف مجلد

أنا حلها التكوين strorekit.
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

إضافة ملف تكوين مجموعة storekit ، وإعادة بنائه وتشغيله الآن على جهاز محاكاة IOS 14 مع xcode 12. إنه يعمل بشكل مثالي ويمكنني بالفعل شراء عناصر على جهاز المحاكاة لأول مرة على الإطلاق.

ilyasbat هل هذا الإصلاح آمن؟ ماذا سيحدث إذا قمت بتغيير عروض المنتج الخاصة بي في متجر التطبيقات بعد ذلك ، على سبيل المثال تغيير الأسعار - هل سيتم تحديثها أيضًا في التطبيق أم أن التطبيق سيتعطل مع storeConfiguration.storekit config؟

ilyasbat هل هذا الإصلاح آمن؟ ماذا سيحدث إذا قمت بتغيير عروض المنتج الخاصة بي في متجر التطبيقات بعد ذلك ، على سبيل المثال تغيير الأسعار - هل سيتم تحديثها أيضًا في التطبيق أم أن التطبيق سيتعطل مع storeConfiguration.storekit config؟

وجدت هذه المقالة الجيدة حقًا:
https://www.appcoda.com/storekit-testing/

من خلال ما أقرأه ، يبدو أن ملف تكوين StoreKit مخصص للتصحيح / الاختبار فقط:

الحقل التالي هو سعر الشراء داخل التطبيق. على الرغم من وجود مستويات أسعار في App Store Connect ، يمكننا هنا تقديم أي قيمة نريدها كنص مجاني. السعر مخصص فقط لأسباب الاختبار ، ولن ينطبق على عمليات الشراء الحقيقية داخل التطبيق وبالطبع لن يكون هناك أي رسوم. لذلك لا تتردد في تحديد أي سعر تريده. بالنسبة لعملية الشراء المحددة داخل التطبيق التي نقوم بتكوينها هنا ، فإن القيمة 0.99 جيدة. ستكون عملة السعر هي العملة المطابقة للغة Simulator ، أو أي لغة تم تحديدها يدويًا (سنتحدث عن ذلك لاحقًا). لذلك ، يمكن أن يكون 0.99 دولارًا ويورو وين وما إلى ذلك.

لست متأكدًا مما إذا كان هذا معروفًا حتى الآن (لم أره مذكورًا أعلاه): لقد اكتشفت أنني أحصل على Error: UNKNOWN_ERROR عندما أقوم بتشغيل npx react-native run-ios من المحطة ، ولكن عندما أقوم بتشغيل التطبيق من xcode ، فإن الشراء داخل التطبيق (باستخدام storekit) يعمل بشكل جيد.

"react-native": "0.61.4",
"react-native-iap": "^4.6.3",

xcode v12.0
macos 10.15.7

في الوقت الحالي ، لا يمكن استخدام رد فعل أصلي - iap في الإنتاج على جهاز يعمل بنظام iOS 14؟ نظرًا لأن الطريقة الوحيدة لإصلاح [Error: UNKNOWN_ERROR] هي إضافة ملف Configuration.StoreKit ، ولكن فقط لأغراض الاختبار ، وليس لإصدار إنتاج؟

هل لدى أي شخص حل آخر؟

أستخدم حاليًا هذا lib للشراء داخل التطبيق في الإنتاج ، Android و iOS (لذا نعم iOS 14). تمكنت من جعل المستخدمين يختبرون بنجاح في TestFlight (ملاحظة: لا يمكنهم استخدام تسجيل الدخول ببصمة الإصبع ، وعليهم إنهاء معرف Apple وكلمة المرور دائمًا - وهي سياسة Apple ، وليست عيبًا في هذه المكتبة) والأشياء تعمل في الإنتاج .

هل حاولت اختبار تطبيقك في TestFlightRobinChailley ؟

حصلت على جهازين من أجهزتي الحقيقية على IOS 14.1 يعملان مع حسابات وضع الحماية مرة أخرى للقيام بما يلي.

اتبع الخطوات لإنشاء تكوين StoreKit ، وحدده في مخطط التشغيل الخاص بك ، ثم قم بالبناء على جهازك. لست متأكدًا مما إذا كانت هذه الخطوة ضرورية ولكن أحضر بعض المنتجات. يمكنك إجراء عملية شراء في هذه المرحلة لكن مستمع الشراء سيخطئ لأن معرف المعاملة من المشتريات هو "0".

بعد ذلك ، قم بإلغاء تحديد تكوين StoreKit من مخطط التشغيل وقم بالبناء على جهازك مرة أخرى. هذه المرة عند إحضار المنتجات ، سيُطلب منك تسجيل الدخول. لسبب ما ، يمكنني تسجيل الدخول بحسابات الحماية الخاصة بي الآن. لست متأكدًا من السبب ولكن ربما يقوم بمسح شيء ما أو إعادة تعيينه.

Karltaylor @ نعم ،

try {
    IAP.initConnection()
        .then((success) => {
            if (!success) return Promise.reject("Failed to connect");

            // get products that can be purchased in iap store
            // Note: this is necessary for requestPurchase to work!
            const productIds = [PRODUCT_ID];
            return IAP.getProducts(productIds);
        })
        .then((prods) => {
            // get already-purchased items
            return getAvailablePurchases();
        })
        .then((purchases) => {
            // continue...
        })
}

ملاحظة: يطابق PRODUCT_ID الخاص بي النص الموجود في عمود "معرف المنتج" في _appstoreconnect -> متجر التطبيقات -> إدارة_

ما هي "حالة" عمليات الشراء داخل التطبيق في _appstoreconnect_؟

Karltaylor @ نعم ،

try {
    IAP.initConnection()
        .then((success) => {
            if (!success) return Promise.reject("Failed to connect");

            // get products that can be purchased in iap store
            // Note: this is necessary for requestPurchase to work!
            const productIds = [PRODUCT_ID];
            return IAP.getProducts(productIds);
        })
        .then((prods) => {
            // get already-purchased items
            return getAvailablePurchases();
        })
        .then((purchases) => {
            // continue...
        })
}

ملاحظة: يطابق PRODUCT_ID الخاص بي النص الموجود في عمود "معرف المنتج" في _appstoreconnect -> متجر التطبيقات -> إدارة_

ما هي "حالة" عمليات الشراء داخل التطبيق في _appstoreconnect_؟

آسف Beamanator لقد أزلت تعليقاتي لتجنب التسبب في مزيد من الالتباس لأنها كانت مشكلة في منطقة أخرى.

بعد إضافة ملف Configuration.storekit ، جعلتهم يعملون في جهاز المحاكاة الخاص بي وفي Testflight! 👍

crossbulat هل تمكنت من إيجاد حل لهذه المشكلة؟ أواجه مشكلة في كل من Android و iOS.

لست متأكدًا مما إذا كان هذا معروفًا حتى الآن (لم أره مذكورًا أعلاه): لقد اكتشفت أنني أحصل على Error: UNKNOWN_ERROR عندما أقوم بتشغيل npx react-native run-ios من المحطة ، ولكن عندما أقوم بتشغيل التطبيق من xcode ، فإن الشراء داخل التطبيق (باستخدام storekit) يعمل بشكل جيد.

"react-native": "0.61.4",
"react-native-iap": "^4.6.3",

xcode v12.0
macos 10.15.7

لا مشكلة لدي
"react-native": "0.63.2",
"react-native-iap": "^5.1.3",
xcode v12.0
macos 11.0.1

عملت مثل هذا في وضع التصحيح ، ولكن ليس في الاختبار. هل سيكون لها تكوين مختلف؟

ما زلت أتلقى نفس "خطأ غير معروف" على iOS.

"react-native": "^0.63.4",
"react-native-iap": "^5.2.0",

Xcode 12.2.2 تحديث

هل من فكرة لحل هذه المشكلة دون استخدام تكوين StoreKit؟

ما زلت أتلقى نفس "خطأ غير معروف" على iOS.

"react-native": "^0.63.4",
"react-native-iap": "^5.2.0",

Xcode 12.2.2 تحديث

هل من فكرة لحل هذه المشكلة دون استخدام تكوين StoreKit؟

ما هو إصدار المحاكاة الذي استخدمته؟
نفس المشكلة مع iOS 14.2 وتعمل بشكل جيد مع iOS 13.5

نفس الشيء بالنسبة لي عند تشغيل المحاكي iOS 14.2 ويعمل بشكل جيد مع جهاز محاكاة iOS 13.x.

ولدي نفس المشكلة مع فريق التحقق من Apple ، أعتقد أنهم يشغلون تطبيقي على جهاز محاكاة ...

لقد وجدنا أن منتجات الشراء داخل التطبيق قد أظهرت خطأً واحدًا أو أكثر عند مراجعتها على iPad الذي يعمل بنظام iOS 14.0.1 على شبكة Wi-Fi.

  • أطلق التطبيق
  • النقر على الإعدادات ، أعلى اليسار
  • النقر على إزالة الإعلانات
  • بدأ التطبيق في التحميل إلى أجل غير مسمى

هل حاول شخص ما هنا نشر عملية شراء داخل التطبيق غير قابلة للاستهلاك في الإنتاج؟

نفس الشيء بالنسبة لي عند تشغيل المحاكي iOS 14.2 ويعمل بشكل جيد مع جهاز محاكاة iOS 13.x.

ولدي نفس المشكلة مع فريق التحقق من Apple ، أعتقد أنهم يشغلون تطبيقي على جهاز محاكاة ...

لقد وجدنا أن منتجات الشراء داخل التطبيق قد أظهرت خطأً واحدًا أو أكثر عند مراجعتها على iPad الذي يعمل بنظام iOS 14.0.1 على شبكة Wi-Fi.

  • أطلق التطبيق
  • النقر على الإعدادات ، أعلى اليسار
  • النقر على إزالة الإعلانات
  • بدأ التطبيق في التحميل إلى أجل غير مسمى

هل حاول شخص ما هنا نشر عملية شراء داخل التطبيق غير قابلة للاستهلاك في الإنتاج؟

لديك أيضًا تأخيرات في الموافقة على الأسعار وأبل لا توافق على طلبك لأنك لا تستطيع الشراء؟

لقد أجريت كل اختباراتي على جهاز حقيقي مع مستخدم وضع الحماية. يعمل كل شيء لشراء المنتج ولكن Apple ترفض بنائي بسبب خطأ "UNKNOW PRODUCT" في جهاز المحاكاة (iOS 14).

أحاول نشر إصدار التطبيق هذا مع عملية شراء داخل التطبيق غير قابلة للاستهلاك إلى App Store منذ أكتوبر ...

لقد أجريت كل اختباراتي على جهاز حقيقي مع مستخدم وضع الحماية. يعمل كل شيء لشراء المنتج ولكن Apple ترفض بنائي بسبب خطأ "UNKNOW PRODUCT" في جهاز المحاكاة (iOS 14).

أحاول نشر إصدار التطبيق هذا مع عملية شراء داخل التطبيق غير قابلة للاستهلاك إلى App Store منذ أكتوبر ...

ألق نظرة على مشكلتنا.

https://github.com/dooboolab/react-native-iap/issues/1200

لقد مررت أيضًا بنفس المشكلة وتم إصدار طلبي بعد ثلاثة أسابيع.

لقد أجريت كل اختباراتي على جهاز حقيقي مع مستخدم وضع الحماية. يعمل كل شيء لشراء المنتج ولكن Apple ترفض بنائي بسبب خطأ "UNKNOW PRODUCT" في جهاز المحاكاة (iOS 14).
أحاول نشر إصدار التطبيق هذا مع عملية شراء داخل التطبيق غير قابلة للاستهلاك إلى App Store منذ أكتوبر ...

ألق نظرة على مشكلتنا.

1200

لقد مررت أيضًا بنفس المشكلة وتم إصدار طلبي بعد ثلاثة أسابيع.

تم قبول بنائي من قبل Apple ، شكرًا جزيلاً على مساعدتك !!!

أجبته هنا

جرب على جهاز حقيقي

إجابة

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

لا تعمل مع هذه البيئة

  • ماك 11.2
  • Xcode 12.4.2 تحديث
  • محاكي يعمل بنظام iOS 14 وما فوق

العمل مع هذه البيئة

  • ماك 11.2
  • Xcode 12.4.2 تحديث
  • محاكي يعمل بنظام iOS 13.7 وما دونه

على جهاز محاكاة iOS 14 ، يعمل هذا
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

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