Tidak ditemukan string hak 'aps-environment' yang valid untuk aplikasi di toko aplikasi

103

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

Jessiah
sumber
Ini sedang ditandatangani dan diunggah -> i.stack.imgur.com/AziCI.png Bangun pengaturan -> i.stack.imgur.com/j2TFG.png
Jessiah

Jawaban:

282

Saya memperbaiki masalah ini dengan mengaktifkan kemampuan pemberitahuan push.

Klik .xcodeproj -> Capabilities -> Enable Push Notification

wei
sumber
15
Di XCode 8 saya melihat kesalahan di bagian ini yang mengatakan bahwa file hak perlu ditambahkan. Saya mengklik ini untuk memperbaikinya dan kemudian berfungsi dengan baik.
Pellet
Baru-baru ini muncul ketika mulai mengembangkan di Xcode 8 dan ini memperbaikinya. Terima kasih!
Kody R.
Sebelumnya bekerja pada Xcode 7.3 tetapi tiba-tiba tidak mendaftar di Xcode 8, tetapi ini menyelesaikan masalah saya dengan mengaktifkan kemampuan pemberitahuan push.
Vinod Rathod
Apple memutuskan untuk menyembunyikan opsi ini di suatu tempat jauh di dalam Xcode 8.1. Tolong beritahu saya jika ada yang bisa menemukannya.
Thomas Sebastian
Saya tidak mendapatkan opsi "Pemberitahuan push" dalam daftar kemampuan. Itu ada hubungannya dengan fakta bahwa XCode secara otomatis membuat profil penyediaan saya (saya baru mengenal iOS dev jadi saya mungkin salah ...). Saya harus masuk ke akun pengembang saya dan secara manual membuat profil penyediaan untuk aplikasi saya sebelum menampilkan Pemberitahuan Push di daftar kemampuan. Akhirnya, mengaktifkannya memperbaiki masalah ini.
Max Mumford
103

Saya memperbaiki masalah ini seperti ini:

  • Pergi ke Xcode "Preferences"
  • Buka tab "Akun"
  • Pilih ID Apple saya dan klik "Lihat Detail"
  • Klik panah di sudut kiri bawah untuk menyegarkan
  • Klik "Selesai"

Dan coba lagi!

Sumber:

Erwan
sumber
6
maka Anda harus memilih profil penyediaan yang benar di Build Setting
Hashem Aboonajmi
2
Dalam kasus saya, saya perlu membuat ulang profil penyediaan di pusat pengembang. Kemudian unduh kembali semua profil dan sertifikat melalui Xcode> preferensi> Akun> ID Apple Anda> tombol lihat detail di sudut kanan> tombol unduh semua. Setelah itu seharusnya berfungsi kembali.
blackjacx
2
Saya merasa sedih ada begitu banyak gangguan dalam proses push dan penerapan. Satu-satunya cara saya dapat mentolerir semua ini adalah dengan melakukan 100% semuanya secara manual, dan tahu apa yang coba dilakukan Xcode, dan mengelola identitas rantai kunci dan profil penyediaan pada sistem file dan melalui iPhone Configuration Utility.
Tom Pace
57

Anda harus mengaktifkan Target—> kemampuan—> notifikasi push. Saya menghadapi masalah ini menggunakan Xcode 8.masukkan deskripsi gambar di sini

Ram G.
sumber
18

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.

Fahim Parkar
sumber
Profil yang saya gunakan dibuat setelah saya membuat sertifikat untuk apn push produksi. Apakah ada yang dapat saya lakukan untuk mengonfirmasi bahwa ini hilang atau berisi info apns?
Jessiah
@Jessiah: Tidak .. Sepertinya kita harus mengikuti jejak yang diberikan oleh Apple.
Fahim Parkar
6

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.

  1. Arahkan ke Pusat Anggota Pengembang Apple dan masuk.
  2. Arahkan ke Sertifikat, Pengidentifikasi dan Profil.
  3. Di menu drop down di pojok kiri atas, pilih iOS, tvOS, watchOS jika belum dipilih, lalu buka Profil Penyediaan> Semua.
  4. Klik tombol + untuk membuat Profil Penyediaan baru.
  5. Pilih iOS App Development sebagai tipe profil penyediaan, lalu klik Lanjutkan.
  6. Di menu tarik-turun, pilih ID Aplikasi yang ingin Anda gunakan, lalu klik Lanjutkan.
  7. Pilih sertifikat iOS Development dari App ID yang telah Anda pilih di langkah sebelumnya, lalu klik Continue.
  8. Pilih perangkat iOS yang ingin Anda sertakan dalam Profil Penyediaan, lalu klik Lanjutkan. Pastikan untuk memilih semua perangkat yang ingin Anda gunakan untuk pengujian Anda.
  9. Masukkan nama untuk profil penyediaan ini (misalnya, Profil Pengembangan Aplikasi Contoh Firebase), lalu klik Buat.
  10. Klik Unduh untuk menyimpan Profil Penyediaan ke Mac Anda.
  11. Klik dua kali file Profil Penyediaan untuk menginstalnya.

2. Aktifkan kapabilitas Push Notification

  1. Pergi ke editor proyek, dari manual resmi masukkan deskripsi gambar di sini
  2. Di bagian kemampuan, Aktifkan Pemberitahuan Push masukkan deskripsi gambar di sini
micaball
sumber
4

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

  • Saya telah membuat profil penyediaan baru untuk id aplikasi
  • menambahkannya ke xcode
  • proyek Pergi ke Xcode "Preferences"
  • Buka tab "Akun" Pilih ID Apple saya dan klik "Lihat Detail"
  • pilih profil penyediaan Anda
  • Klik panah di sudut kiri bawah untuk menyegarkan
  • Klik "Selesai"

dan sekarang menjalankan proyek pasti akan berhasil.

Venky Chittala
sumber
3

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.

FrankByte.com
sumber
1

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?

Alex Ryltsov
sumber
-1

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.

Desen GUO
sumber