Jadi saya memiliki aplikasi bernama Dripper yang saya keluarkan sekitar sebulan yang lalu dan kemudian diperbarui beberapa hari yang lalu. Pembaruan menambahkan pemberitahuan push dan beberapa perubahan kecil. Saya mengujinya dengan sandbox-apn menggunakan profil pengembangan dan semuanya bekerja dengan baik. Kemudian saya beralih ke apn produksi dan mendorongnya ke uji terbang, lagi-lagi semuanya bekerja dengan sempurna. Setelah saya menempatkan pembaruan di pasar dan menjalankannya, saya perhatikan saya tidak mendapatkan pendaftaran push baru di server. Saya melihat log konsol untuk perangkat dan menemukan ini:
4 Des 17:55:15 Ina-touch-it coffco [1210]: Mendaftar untuk pemberitahuan jarak jauh
4 Des 17:55:15 Ina-touch-it SpringBoard [52]: Tidak ada string hak 'aps-environment' yang valid ditemukan untuk aplikasi 'Dripper': (null). Pemberitahuan tidak akan dikirim.
4 Des 17:55:15 Ina-touch-it coffco [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}
Saya agak bingung karena menurut saya apn produksi akan berfungsi sama antara ad-hoc dan build app store.
Ini adalah id aplikasi saya dan haknya -> http://i.stack.imgur.com/uf4pB.png
Berikut adalah profil penyediaan untuk toko aplikasi -> http://i.stack.imgur.com/AYOV5.png
Jawaban:
Saya memperbaiki masalah ini dengan mengaktifkan kemampuan pemberitahuan push.
Klik .xcodeproj -> Capabilities -> Enable Push Notification
sumber
Saya memperbaiki masalah ini seperti ini:
Dan coba lagi!
Sumber:
sumber
Anda harus mengaktifkan Target—> kemampuan—> notifikasi push. Saya menghadapi masalah ini menggunakan Xcode 8.
sumber
Masalah tersebut terjadi karena Profil Penyediaan saat ini tidak berisi informasi APNS, karena Profil Penyediaan dibuat SEBELUM membuat sertifikat APNS.
Oleh karena itu, untuk mengatasi masalah tersebut, buat Profil Penyediaan baru & pilih Profil Penyediaan di Xcode. Maka Anda SELESAI.
Selain itu, saat Anda menambahkan push, saya yakin Anda telah memperbarui sertifikat di rantai kunci juga.
sumber
Mengenai Xcode 9, beberapa jawaban sudah ketinggalan zaman atau tidak lengkap untuk mengatasi masalah khusus ini.
Inilah langkah-langkah yang harus saya ikuti:
1. Buat Profil Penyediaan
( FCM bukan prasyarat untuk notifikasi push tetapi panduannya sangat jelas, ini tautannya )
Untuk menguji aplikasi Anda saat dalam pengembangan, Anda memerlukan Profil Penyediaan untuk pengembangan guna memberi otorisasi perangkat Anda untuk menjalankan aplikasi yang belum dipublikasikan di App Store.
2. Aktifkan kapabilitas Push Notification
sumber
Saya memiliki masalah yang sama saat menggunakan iOS 8.0 dan versi di atasnya; Saya tidak mendapatkan token perangkat dan memberikan kesalahan: "tidak ada string hak 'aps-environment' yang valid ditemukan untuk aplikasi"
Saya memperbaikinya dengan menggunakan langkah-langkah di bawah ini
dan sekarang menjalankan proyek pasti akan berhasil.
sumber
Untuk beberapa alasan, solusi Wei tidak berhasil untukku. Saat mengklik Perbaiki hak, Xcode menghasilkan dua file dan masih tidak berfungsi, memang file hak yang dihasilkan kosong.
Hal ini disebabkan (tampaknya) oleh PRODUCT_NAME proyek yang agak panjang dan menyertakan spasi dan huruf "ä" dan "ö". Setelah mengubahnya menjadi versi pendek dengan huruf hanya dalam bahasa Inggris, perbaikan oleh Wei bekerja dengan benar.
sumber
Butuh beberapa saat bagi saya untuk mencari tahu apa yang menyebabkan tidak ada kesalahan hak aps-environment yang valid. Masalahnya adalah ada dua file .entitlements dalam proyek XCode. Salah satunya adalah platform / ios //. Entitlements dan yang lainnya adalah platform / ios // Resources / .entitlements dan hak yang sesuai hanya ada di file sebelumnya sementara XCode dikonfigurasi untuk menggunakan yang terakhir. Saya memperbarui file terakhir secara manual dan semuanya mulai berfungsi. Pilihan lain untuk memperbaikinya adalah dengan mengubah .entitlements mana yang digunakan oleh XCode. Ini dapat dilakukan di Build Settings -> Signing -> Code Signing Entitlements config param.
Saya tidak yakin mengapa ada dua file .entitlements di XCode. Mungkinkah plugin push cordova membuat yang kedua (saya sedang mengembangkan aplikasi seluler cordova hybrid)? Dan di mana lokasi yang benar untuk file .entitlements?
sumber
Saya mengalami masalah ini dan menyelesaikannya dengan solusi pertama.
Namun, saya gagal sekali karena saya memiliki dua akun apple yang masuk. Setelah menghapus satu, semuanya menjadi bekerja.
sumber