React-native-iap: iOS 14: getProducts () Kesalahan Tidak Diketahui (RN 0.62.2 - 0.63)

Dibuat pada 18 Sep 2020  ·  50Komentar  ·  Sumber: dooboolab/react-native-iap

RNIap.getProducts () tampaknya rusak di versi terbaru React Native, hanya mengembalikan kesalahan yang tidak diketahui.

Versi react-native-IAP

4.6.1

Versi react-native

0.63.0

Platform yang Anda hadapi kesalahan (IOS atau Android atau keduanya?)

iOS

Perilaku yang diharapkan

produk yang akan diambil.

Perilaku sebenarnya

kesalahan tak dikenal dikembalikan

Lingkungan yang diuji (Emulator? Perangkat Nyata?)

Simulator iOS

Langkah-langkah untuk mereproduksi perilaku

Panggil saja RNIap.getProducts () atau RNIap.getSubscriptions ().

📱 iOS 🙏 help wanted

Komentar yang paling membantu

Semua 50 komentar

Saya mengalami ini juga dengan simulator iOS yang menjalankan iOS 14.0 tetapi tidak mengalami masalah dengan versi simulator lainnya (khususnya, iOS 13.5).

Ini tampaknya menjadi masalah di pihak Apple dengan simulator iOS 14.0: https://developer.apple.com/forums/thread/125164

Menemukan tautan itu melalui: https://github.com/dooboolab/react-native-iap/issues/1091

Terima kasih @joeyscarim. Saya sekarang telah menghubungi Apple dan menunggu umpan balik dari mereka.

@rossbulat masalah yang sama di iOS 14 ...
react-native-iap - v4.6.1
Xcode - v12

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)

Halo semuanya,

Kami juga mengalami ini. Setelah mengupgrade ke v4.6.1 hampir setiap kali kita mengalami "error yang tidak diketahui" juga.

Screenshot 2020-09-23 at 09 53 25

Hai teman-teman,
Saya rasa saya menemukan solusi untuk masalah kami. Anda harus yakin bahwa initConnection sedang berjalan.
Dalam contoh saya, saya hanya memasukkan requestPurchase/requestSubscription di dalam initConnection . Sebelum bekerja tanpa itu, sekarang harus dimiliki.

@Hellhiem Saya memiliki initConnection dan masih menerima kesalahan.

Menjalankan fungsi berikut memverifikasi bahwa kesalahan masih ada dengan initConnection ()

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

@rossbulat apa yang terjadi ketika Anda mencoba ini:

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

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

Saya membuat hal yang sama tetapi di dalam then saya menaruh requestPurchase/requestSubscription

@Hellhiem Masih mendapatkan Kesalahan Tidak Diketahui! (ini sama dengan kode saya tetapi menggunakan sintaksis bukannya async / await).

Saya telah melihat API modul asli, fungsi getItems() tampaknya menjadi titik kegagalan. Apakah mungkin bagi salah satu pengembang inti untuk memverifikasi panggilan API asli ini berfungsi seperti yang diharapkan di iOS 14?

@Hellhiem Saya telah mencoba kode Anda, masih mendapatkan Kesalahan Tidak Dikenal yang sama.

Teknisi Apple sedang menyelidiki kasus ini melalui Asisten Umpan Balik. Saya akan memperbarui utas ini ketika dan ketika kami menentukan apa masalahnya.

Saya mengalami masalah ini pada simulator iOS yang menjalankan iOS 14.0

Masalah yang sama. Simulator IOS 14 dengan xcode 12 tidak dapat mengambil produk dan membuang kesalahan yang tidak diketahui

Masalah yang sama.

Masalah yang sama untuk perangkat nyata selama review apel

Saya memiliki masalah yang sama tetapi dengan fungsi getSubscriptions

Saya melakukan beberapa tes dan, bagi saya, [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers] kembali kosong ...

masalah yang sama

Memiliki masalah yang sama dengan getSubscriptions di sisi IOS, UNKNOWN_ERROR terlempar, Xcode 12.0, react-native 0.62.2

@ Crossbulat beruntung? Saya juga mengalami masalah yang sama

@ Crossbulat beruntung? Saya juga mengalami masalah yang sama

Apakah Anda menggunakan perangkat atau simulator?

Halo para pengembang, saya telah menyelesaikannya. Saya melakukan hal berikut

  1. Saya memastikan saya menerima semua syarat dan ketentuan dalam perjanjian pengguna dengan memastikan statusnya aktif
  2. Saya memastikan bahwa ID produk / langganan di bagian pembelian dalam aplikasi aplikasi Anda ditandai siap untuk dikirim

PS: Pengujian saya dilakukan di perangkat lokal

Masalahnya hanya ada di iOS 14 Simulator. Perangkat nyata berfungsi.

Apple diam selama seminggu terakhir, tidak ada pembaruan yang dibagikan dengan saya.

Untuk simulator, Anda harus menambahkan file konfigurasi StoreKit ke proyek dan memilihnya di skema Run Anda. Tapi saya mengalami kesalahan ini di perangkat

Masalahnya hanya ada di iOS 14 Simulator. Perangkat nyata berfungsi.

Apple diam selama seminggu terakhir, tidak ada pembaruan yang dibagikan dengan saya.

Mungkin pengujian dalam pembelian aplikasi sekarang dibatasi untuk perangkat nyata, karena saya tidak dapat menemukan opsi untuk menambahkan penguji kotak pasir di simulator iOS

Masalahnya hanya ada di iOS 14 Simulator. Perangkat nyata berfungsi.

Apple diam selama seminggu terakhir, tidak ada pembaruan yang dibagikan dengan saya.

Mungkin pengujian dalam pembelian aplikasi sekarang dibatasi untuk perangkat nyata, karena saya tidak dapat menemukan opsi untuk menambahkan penguji kotak pasir di simulator iOS

Ini dikelola oleh file konfigurasi storekit

@ilyasbat Saya mengikuti petunjuk ini, membersihkan folder build dan membangun ulang, tetapi sayangnya masih mendapatkan kesalahan.

saya diselesaikan dengan konfigurasi strorekit.
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

Menambahkan file konfigurasi storekit, membangun ulang dan sekarang berjalan di simulator IOS 14 dengan xcode 12. Ini bekerja dengan sempurna dan saya benar-benar dapat membeli item di simulator untuk pertama kalinya.

@ilyasbat apakah perbaikan ini aman? Apa yang akan terjadi jika saya mengubah penawaran produk saya di appstore setelah itu, misalnya mengubah harga - apakah penawaran tersebut juga akan diperbarui di aplikasi atau apakah aplikasi akan terjebak dengan konfigurasi storeConfiguration.storekit ?

@ilyasbat apakah perbaikan ini aman? Apa yang akan terjadi jika saya mengubah penawaran produk saya di appstore setelah itu, misalnya mengubah harga - apakah penawaran tersebut juga akan diperbarui di aplikasi atau apakah aplikasi akan terjebak dengan konfigurasi storeConfiguration.storekit ?

Menemukan artikel yang sangat bagus ini:
https://www.appcoda.com/storekit-testing/

Dari apa yang saya baca, sepertinya file konfigurasi StoreKit hanya untuk debugging / pengujian:

Bidang berikutnya adalah Harga dari pembelian dalam aplikasi. Meskipun ada tingkatan harga di App Store Connect, di sini kami dapat memberikan nilai apa pun yang kami inginkan sebagai teks bebas. Harganya hanya untuk alasan pengujian, tidak akan berlaku untuk pembelian dalam aplikasi yang sebenarnya dan tentu saja, tidak akan ada biaya. Jadi jangan ragu untuk menetapkan harga apa pun yang Anda suka. Untuk pembelian dalam aplikasi khusus yang kami konfigurasikan di sini, nilai 0,99 baik-baik saja. Mata uang harga akan menjadi mata uang yang sesuai dengan lokasi Simulator, atau lokal mana pun yang telah dipilih secara manual (kita akan membicarakannya nanti). Jadi, 0,99 bisa menjadi dolar, euro, yen, dan sebagainya.

Saya tidak yakin apakah ini belum diketahui (saya tidak melihatnya disebutkan di atas): Saya menemukan bahwa saya terus mendapatkan Error: UNKNOWN_ERROR ketika saya menjalankan npx react-native run-ios dari terminal, tetapi ketika Saya menjalankan aplikasi dari xcode, pembelian dalam aplikasi (dengan storekit) berfungsi dengan baik.

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

xcode v12
macos 10.15.7

Oleh karena itu, saat ini, tidak mungkin menggunakan react-native-iap dalam produksi pada perangkat dengan iOS 14? Karena satu-satunya cara untuk memperbaiki [Error: UNKNOWN_ERROR] adalah dengan menambahkan file Configuration.StoreKit , tetapi hanya untuk tujuan pengujian, bukan untuk rilis produksi?

Apakah ada yang punya solusi lain?

Saat ini saya menggunakan lib ini untuk pembelian dalam aplikasi dalam produksi, Android dan iOS (jadi ya iOS 14). Saya dapat membuat pengguna berhasil menguji di TestFlight (catatan: mereka tidak dapat menggunakan masuk dengan sidik jari, mereka harus selalu menggunakan ID Apple & kata sandi - yang merupakan kebijakan Apple, bukan cacat dari pustaka ini) dan semuanya berfungsi dalam produksi .

Sudahkah Anda mencoba menguji aplikasi Anda di TestFlight @RobinChailley ?

Saya mendapat 2 perangkat saya yang sebenarnya di IOS 14.1 yang bekerja dengan akun kotak pasir lagi dengan melakukan hal berikut.

Ikuti langkah-langkah untuk membuat konfigurasi StoreKit, pilih di skema Run Anda, lalu buat ke perangkat Anda. Tidak yakin apakah langkah ini diperlukan tetapi ambil beberapa produk. Anda dapat melakukan pembelian pada saat ini tetapi pendengar pembelian akan mengalami error karena transactionId dari pembelian adalah "0".

Selanjutnya hapus pilihan konfigurasi StoreKit dari skema Run dan buat lagi ke perangkat Anda. Kali ini ketika Anda mengambil produk, Anda akan diminta untuk masuk. Untuk beberapa alasan, saya bisa masuk dengan akun kotak pasir saya sekarang. Tidak yakin mengapa tapi mungkin itu menghapus atau mengatur ulang sesuatu.

@ Karltaylor Ya, saya membuat pembelian dalam aplikasi saya muncul saat menguji di TestFlight. Kode saya terlihat seperti ini:

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...
        })
}

Catatan: PRODUCT_ID cocok dengan teks di kolom "ID Produk" di _appstoreconnect -> App Store -> Manage_

Apa "Status" dari Pembelian Dalam Aplikasi Anda di _appstoreconnect_?

@ Karltaylor Ya, saya membuat pembelian dalam aplikasi saya muncul saat menguji di TestFlight. Kode saya terlihat seperti ini:

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...
        })
}

Catatan: PRODUCT_ID cocok dengan teks di kolom "ID Produk" di _appstoreconnect -> App Store -> Manage_

Apa "Status" dari Pembelian Dalam Aplikasi Anda di _appstoreconnect_?

Maaf @Beamanator Saya menghapus komentar saya untuk menghindari lebih banyak kebingungan karena Ini adalah masalah dengan area lain.

Setelah menambahkan file Configuration.storekit saya membuatnya bekerja di simulator saya dan di Testflight! 👍

@rossbulat Apakah Anda dapat menemukan solusi untuk masalah ini? Saya mendapatkan masalah di Android dan iOS.

Saya tidak yakin apakah ini belum diketahui (saya tidak melihatnya disebutkan di atas): Saya menemukan bahwa saya terus mendapatkan Error: UNKNOWN_ERROR ketika saya menjalankan npx react-native run-ios dari terminal, tetapi ketika Saya menjalankan aplikasi dari xcode, pembelian dalam aplikasi (dengan storekit) berfungsi dengan baik.

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

xcode v12
macos 10.15.7

Tidak masalah dengan saya
"react-native": "0.63.2",
"react-native-iap": "^5.1.3",
xcode v12
macos 11.0.1

itu bekerja seperti ini dalam mode debug, tetapi tidak dalam testflight. Apakah itu memiliki konfigurasi yang berbeda?

Saya masih mendapatkan "Kesalahan Tidak Dikenal" yang sama di iOS.

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

Xcode 12.2

Ada ide untuk mengatasi masalah ini tanpa menggunakan konfigurasi StoreKit?

Saya masih mendapatkan "Kesalahan Tidak Dikenal" yang sama di iOS.

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

Xcode 12.2

Ada ide untuk mengatasi masalah ini tanpa menggunakan konfigurasi StoreKit?

Versi simulator apa yang Anda gunakan?
Masalah yang sama dengan iOS 14.2 dan berfungsi dengan baik dengan iOS 13.5

Sama seperti saya ketika menjalankan simulator iOS 14.2 dan berfungsi dengan baik dengan simulator iOS 13.x.

Dan saya memiliki masalah yang sama dengan tim validasi Apple, saya pikir mereka menjalankan aplikasi saya di simulator ...

Kami menemukan bahwa produk pembelian dalam aplikasi Anda menunjukkan satu atau beberapa bug saat ditinjau di iPad yang menjalankan iOS 14.0.1 pada Wi-Fi.

  • Meluncurkan aplikasi
  • Ketuk Pengaturan, kiri atas
  • Mengetuk Hapus iklan
  • Aplikasi mulai memuat tanpa batas

Seseorang di sini telah mencoba memublikasikan pembelian dalam aplikasi yang tidak dapat dikonsumsi dalam produksi?

Sama seperti saya ketika menjalankan simulator iOS 14.2 dan berfungsi dengan baik dengan simulator iOS 13.x.

Dan saya memiliki masalah yang sama dengan tim validasi Apple, saya pikir mereka menjalankan aplikasi saya di simulator ...

Kami menemukan bahwa produk pembelian dalam aplikasi Anda menunjukkan satu atau beberapa bug saat ditinjau di iPad yang menjalankan iOS 14.0.1 pada Wi-Fi.

  • Meluncurkan aplikasi
  • Ketuk Pengaturan, kiri atas
  • Mengetuk Hapus iklan
  • Aplikasi mulai memuat tanpa batas

Seseorang di sini telah mencoba memublikasikan pembelian dalam aplikasi yang tidak dapat dikonsumsi dalam produksi?

Anda juga mengalami penundaan dalam menyetujui harga dan apple tidak menyetujui aplikasi Anda karena Anda tidak dapat membeli?

Saya telah melakukan semua pengujian saya di perangkat nyata dengan pengguna kotak pasir. Semua berfungsi untuk membeli produk tetapi Apple menolak build saya karena kesalahan "PRODUK TIDAK DIKETAHUI" pada simulator (iOS 14).

Saya mencoba menerbitkan versi aplikasi ini dengan pembelian dalam aplikasi yang tidak dapat dikonsumsi ke App Store sejak Oktober ...

Saya telah melakukan semua pengujian saya di perangkat nyata dengan pengguna kotak pasir. Semua berfungsi untuk membeli produk tetapi Apple menolak build saya karena kesalahan "PRODUK TIDAK DIKETAHUI" pada simulator (iOS 14).

Saya mencoba menerbitkan versi aplikasi ini dengan pembelian dalam aplikasi yang tidak dapat dikonsumsi ke App Store sejak Oktober ...

Lihat masalah kami.

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

Saya juga mengalami masalah yang sama dan aplikasi saya dirilis setelah tiga minggu.

Saya telah melakukan semua pengujian saya di perangkat nyata dengan pengguna kotak pasir. Semua berfungsi untuk membeli produk tetapi Apple menolak build saya karena kesalahan "PRODUK TIDAK DIKETAHUI" pada simulator (iOS 14).
Saya mencoba menerbitkan versi aplikasi ini dengan pembelian dalam aplikasi yang tidak dapat dikonsumsi ke App Store sejak Oktober ...

Lihat masalah kami.

1200

Saya juga mengalami masalah yang sama dan aplikasi saya dirilis setelah tiga minggu.

Bangunan saya diterima oleh Apple, terima kasih banyak atas bantuan Anda !!!

saya menjawabnya di sini

coba di perangkat nyata

Menjawab

Memiliki masalah ini juga pada simulator IOS 14. Alangkah baiknya untuk menguji pembayaran tanpa harus menggunakan perangkat nyata.

Tidak bekerja dengan lingkungan ini

  • Mac 11.2
  • Xcode 12.4
  • Simulator yang menjalankan iOS 14 ke atas

Bekerja dengan lingkungan ini

  • Mac 11.2
  • Xcode 12.4
  • Simulator yang menjalankan iOS 13.7 dan yang lebih lama

Pada simulator iOS 14 ini berfungsi
https://stackoverflow.com/questions/58020258/requesting-an-in-app-purchase-in-ios-13-fails/58065711#58065711

Apakah halaman ini membantu?
0 / 5 - 0 peringkat