Kepemilikan Pemberitahuan Push yang Hilang


126

Saya memiliki aplikasi untuk pengiriman ketika ditolak dan saya menerima pesan

Hak Pemberitahuan Dorong Hilang - Aplikasi Anda tampaknya mendaftar pada layanan Pemberitahuan Dorong Apple, tetapi hak tanda tangan aplikasi tidak termasuk hak "lingkungan aps". Jika aplikasi Anda menggunakan layanan Pemberitahuan Push Apple, pastikan ID Aplikasi Anda diaktifkan untuk Pemberitahuan Push di Portal Penyediaan, dan kirim kembali setelah menandatangani aplikasi Anda dengan profil penyediaan Distribusi yang mencakup hak "lingkungan-aps".

Saya memeriksa ketentuan ad-hoc saya dan di sana saya menemukan aps-environment dan produksi, tetapi ketika saya membuka ketentuan distribusi saya, saya tidak menemukan itu.

Apakah ini penyebab pesan kesalahan dan penolakan apel ini, bagaimana saya bisa memperbaikinya?

Jawaban:


80

Ya, itulah penyebab penolakan App Store. Jika profil penyediaan ad-hoc Anda memiliki kunci aps-environment, itu berarti aplikasi Anda dikonfigurasi dengan benar di Portal Penyedia Apple. Yang perlu Anda lakukan adalah menghapus profil distribusi App Store di mesin lokal Anda, lalu unduh ulang dan instal profil distribusi dari Portal Penyediaan. Yang baru ini harus berisi kunci aps-environment.


Hanya untuk membersihkan lebih banyak kabut, ini cukup menyatakan bahwa "profil distribusi HARUS memiliki lingkungan aps, dll" di dalamnya, dan bahwa ketika saya membuka ketentuan dalam editor teks, saya akan menemukannya terbaring di sana ...
mirageservo

apakah saya perlu membuat sertifikat ssl baru, khususnya ketika saya telah mengubah sesuatu dari profil distribusi saya?
mirageservo

2
Tidak, tidak perlu sertifikat pengembang baru. Ketika Anda mengaktifkan distribusi untuk pemberitahuan push (yang harus Anda lakukan di beberapa titik karena profil ad hoc Anda memiliki kunci aps-environment), iTunes Provisioning Portal menghasilkan profil distribusi store app baru yang berisi kunci aps-environment. Anda mungkin belum mengunduh dan menginstal yang terbaru.
tom

satu hal lagi sebelum pertanyaan ini sampai ke galaksi, apakah saya perlu mengkompilasi ulang (mengarsip ulang) ipa, karena akan ada perubahan dalam pengaturan pembangunan proyek atau, saya dapat langsung mendistribusikan aplikasi tanpa repot-repot melakukan kompilasi ulang?
mirageservo

Anda perlu mengarsip ulang. Profil penyediaan yang terkait dengan aplikasi dimasukkan ke dalam .ipa.
tom

43

ID Aplikasi pertama

pastikan notifikasi push ID Anda diaktifkan di sisi produksi

seperti yang terlihat dalam gambar

masukkan deskripsi gambar di sini

Sertifikat kedua

dari bagian produksi buat dua sertifikat dengan id Anda (push notification diaktifkan)

App Store dan sertifikat Ad Hoc

Sertifikat Layanan Pemberitahuan Push Apple SSL (Kotak Pasir)

masukkan deskripsi gambar di sini

Profil Penyedia Ketiga

Dari bagian Distribusi, buat profil App Store dengan id Anda

Akhirnya

saat Anda mengunggah nampan Anda, Anda harus memeriksa profil penyediaan apa yang digunakan dan memiliki banyak hak

masukkan deskripsi gambar di sini

ini semua kasus menyebabkan masalah ini berharap ini bisa membantu Anda


1
Ini yang saya lewatkan. Saya harus membuat profil penyediaan baru di situs pengembang apel menggunakan ID Aplikasi dengan pemberitahuan push. Dengan profil penyediaan yang baru, akhirnya hak lingkungan aps ditambahkan ke aplikasi saya. Terima kasih!
M. Luisa Carrión

38

Dalam XCode 8 Anda perlu mengaktifkan push di tab Capabilities pada target Anda, selain mengaktifkan segala sesuatu pada ketentuan dan sertifikat: Xcode 8 "hak aps-environment hilang dari tanda tangan aplikasi" saat mengirim

Posting blog saya tentang ini di sini .


8
Ini adalah Apple klasik. Dua jam setelah saya mengirimkan build, mereka mengirim pesan kesalahan tentang masalah yang sudah lama saya atasi (mengaktifkan Push Notification Application Service di Portal Dev) dan dijelaskan dengan tautan ke 404. Kemudian ternyata yang asli Masalahnya adalah mereka tidak memigrasikan pengaturan saya ketika memutakhirkan ke versi baru dari perangkat lunak mereka (bahwa saya terkunci ke dalam). Ugh.
Rembrandt Q. Einstein

3
Kisah yang sama di sini. Kami hampir menolak pesan kesalahan sebagai bug Apple.
Vaiden

23

Saya mendapat pesan ini karena alasan yang berbeda - saya mengirimkan aplikasi melalui Xcode tanpa terlebih dahulu membuat Profil Distribusi App Store khusus untuk aplikasi tersebut. Saya percaya Xcode secara otomatis menggunakan profil wildcard App Store jika Anda menginstalnya. Tetapi aplikasi yang menggunakan Pemberitahuan Push memerlukan profilnya sendiri.

Cara mengatasinya adalah membuat profil Distribusi App Store baru untuk aplikasi tersebut. Kemudian Anda mengunduhnya, seret ke Xcode, dan modifikasi proyek Anda Membangun Pengaturan> Penandatanganan Kode> Lepaskan untuk menggunakan profil baru.


11

Sebagai lanjutan dari jawaban yang diberikan oleh @Vaiden, di Xcode 8 Anda dapat mengatasi masalah ini dengan memilih target dan mengklik "Perbaiki masalah". Tentu saja, Anda masih perlu mengatur pemberitahuan push di portal Pengembang Apple (Anda dapat sedikit menyederhanakan prosesnya dengan menggunakan opsi "Kelola penandatanganan otomatis" yang baru, yang menghemat kerumitan mengunduh profil penyediaan).

Perbaiki opsi saya


8

Bagi mereka yang mengalami masalah ini yang sebenarnya menggunakan Pemberitahuan Push di aplikasi mereka:

Cert push kami baru-baru ini akan kedaluwarsa, jadi kami membuat sertifikat push dev / prod baru dengan cara standar yang digariskan oleh Apple (saya tidak akan membahas detailnya di sini, ada banyak info tentangnya di seluruh web saat memperbarui) sertifikat push Anda untuk satu tahun penggunaan lagi).

Namun setelah melakukannya, masalah dalam pertanyaan ini muncul. Apa pun yang kami lakukan, kami menerima email ini dari Apple setelah mengirimkan aplikasi kami. Ketika kami memeriksa pengaturan Profil Penyediaan Distribusi kami di Apple Member Center, semuanya tampak baik-baik saja (Push diaktifkan untuk ID Aplikasi kami untuk kedua prod / dev, dan profil penyediaan distribusi kami masih terhubung ke ID Aplikasi ini, kami benar-benar baru saja membuat sertifikat push baru untuk tahun berikutnya seperti praktik standar).

Akhirnya, inilah yang akhirnya memecahkannya untuk saya:

  1. Buat Profil Penyediaan Distribusi baru yang menunjuk ke ID Aplikasi Anda (biarkan yang sekarang berlaku)
  2. Di Xcode, segarkan profil penyediaan Anda melalui Pengaturan> Akun> Pilih akun Anda> Perincian> Klik ikon segarkan
  3. Secara manual membuat file plist hak untuk aplikasi Anda:
    • Menu file> File Baru ...
    • Pilih iOS> Sumber Daya> Daftar Properti
    • Beri nama file baru "foo.entitlements" (biasanya, "foo" adalah nama target)
    • Klik (+) di sebelah "File Hak" untuk menambahkan item tingkat atas (editor daftar properti akan menggunakan skema yang benar karena ekstensi file)
  4. Pastikan file kepemilikan ini sedang digunakan di Build Settings target Anda (Target> Build Settings> Cari "Kepemilikan", di CODE_SIGN_ENTITLEMENTS setel path ke file Entitlements yang baru saja Anda buat)
  5. Pastikan profil penandatanganan / identitas penandatanganan kode dalam Target Anda diatur dengan benar untuk profil penandatanganan / penandatanganan identitas yang sesuai (ini harus jelas)
  6. Saya tidak 100% yakin apakah ini memengaruhinya (seharusnya tidak semenjak pengaturan Target mengesampingkan pengaturan proyek, tetapi saya melakukannya), pastikan profil penyediaan / identitas penandatanganan Proyek Anda cocok dengan Target Anda
  7. Di file hak yang Anda buat, klik kanan di file kosong dan pilih "Show Raw Keys / Values"
  8. Tambahkan entri baru ke file kepemilikan yang disebut "aps-environment" dan tetapkan nilainya ke "produksi"
  9. Satu catatan kunci, jika Anda sebelumnya menggunakan hak grup akses-gantungan kunci, Anda juga ingin menambahkan kunci itu di sini karena untuk beberapa alasan hal itu menjadi jelas bagi saya ketika melakukan ini secara manual. Pastikan nilainya sama dengan nilai yang digunakan pada bangunan sebelumnya (Anda dapat menemukan nilainya dengan menemukan bangunan sebelumnya di Penyelenggara, mencoba mengirimkan ke toko aplikasi, pilih tim Anda, lalu sebelum mengirimkan aplikasi ketuk panah di sebelah "(X) Kepemilikan" string untuk memperluas kepemilikan dan melihat nilai kepemilikan grup akses-gantungan kunci.
  10. Arsipkan aplikasi Anda dan cobalah untuk mengirimkannya ke titik tombol "Kirim" yang terakhir. Anda akan melihat aplikasi ini sekarang dibangun dengan profil penyediaan baru yang Anda buat di pusat anggota. Batalkan ini sekarang.
  11. Kembali ke pusat anggota Apple dan hapus profil penyediaan baru yang Anda buat pada langkah 1.
  12. Kembali di Xcode, segarkan daftar profil bawaan Anda sekali lagi dengan mengulangi langkah 2.
  13. Sekarang arsipkan aplikasi Anda lagi, dan Anda akan melihat bahwa aplikasi itu dibuat dengan profil penyediaan Distribusi lama yang ingin Anda gunakan, dan memiliki hak lingkungan APs dengan benar. Kirim dan selesai.

Saya tahu ini tidak sedetail sebagaimana mestinya seperti memiliki tangkapan layar, saya akan mencoba memperbaruinya dengan tangkapan layar ketika saya bisa, tetapi untuk saat ini saya sedang dalam krisis waktu sekarang dan ingin mendapatkan intisari dari apa yang saya lakukan di luar sana. Ada juga kemungkinan besar bahwa beberapa atau sebagian besar langkah yang saya uraikan tidak perlu, saya menempatkan mereka di sini karena saya melakukannya dan mereka mungkin mengarah ke solusi akhir.


Terima kasih. # 8 bagi saya diatur untuk pengembangan, yang bisa menjadi masalah kita.
ingage

Terima kasih banyak, menghabiskan satu hari penuh pada masalah ini, langkah # 4 adalah masalahnya, untuk beberapa alasan tanpa menentukan CODE_SIGN_ENTITLEMENTS haknya diabaikan hanya pada unggahan app store.
Mark Kazakov

5

periksa Id Aplikasi Anda Diaktifkan Push atau tidak pada developer.apple.com di Portal Provisioning iOS Jika Tidak Diaktifkan, konfigurasikan Sertifikat SSL Push Anda untuk Id Aplikasi Anda, unduh, dan Instal Ulang di Gantungan Kunci Anda Sekali lagi Unduh Unduh Profil Distrubution Anda instal di Liabrary Xcode Anda


4

Saya juga menghadapi masalah ini bahkan saya tidak menggunakan pemberitahuan push sama sekali di aplikasi saya. Membuat profil penyediaan baru juga tidak berfungsi untuk saya. Apa yang saya lakukan adalah: -

1. Buat sertifikat baru yang segar hanya untuk Ad hoc & App Store.

2.Kemudian buat profil distribusi dengan sertifikat ini dan integrasikan profil dengan Xcode.

Kemudian bangunan yang baru dikirim dengan profil ini disetujui tanpa peringatan apa pun.


2
Saya mencoba ini - tidak membantu. masih mendapatkan pemberitahuan push yang hilang .. saya tidak menggunakan pemberitahuan push!
Adam

2

Dalam kasus saya, bahkan saya membuat myapp.profile dan mengaturnya dalam xcode secara manual, dan ketika saya memilih "show in finder" dan menemukan embedded.mobileprovision dan memeriksa untuk memastikan aps-environment ada dalam file tersebut, kesalahannya adalah masih di sana.

Saya kemudian pergi ke pusat pengembang dan menemukan bahwa status XC: myapp.profile tidak valid. Saya memperbaruinya dan menginstal XC: myapp.profile dan bekerja dengan baik.

Saya pikir xcode sedang mencoba mengelola profil dan Anda perlu memeriksa profil penyediaan ketika Anda mengirimkan biner Anda untuk menyimpan, dan memastikan itu adalah yang benar. Dan menurut jawaban lain itu bisa disebabkan karena berbagai alasan sehingga bisa sangat menyebalkan.

MEMPERBARUI:

Setelah Anda masuk dengan profil yang diunduh dan mengonfirmasi bahwa aps-environmentada di sana ketika Anda mencoba mengirim App Store, Anda harus dapat mengubah profil dan entitas penandatanganan kode menjadi otomatis dan iOS Developer. Semoga bisa ditingkatkan di Xcode 7.


Saya telah memeriksa semua profil dan juga XC: profil diperbarui dan tidak menyertakan kunci asp-environment di sana saya masih mengalami masalah yang sama berulang kali. Bantuan apa pun akan dihargai. Dan ya saya tidak memerlukan pemberitahuan push yang diterapkan dalam aplikasi
The iOSDev

Bisakah Anda memastikan dengan memeriksa konten biner dari profil bawaan dan melihat apakah string "aps-environment" ada di dalam atau tidak? Jika ada di dalam, Anda perlu menemukan cara untuk menghilangkannya, jika tidak, Anda harus memastikan bahwa profil adalah yang Anda gunakan untuk menandatangani aplikasi. Bagaimanapun, pasti ada masalah.
superarts.org

1
Saya telah memeriksanya dua kali dan mencoba mencari tahu lebih banyak tetapi tidak berhasil. Tidak ada string seperti itu tetapi setelah 2 hari pencarian dan mencoba, saya mendapat satu hal yang sesuai bahwa masalah ini adalah dengan Xcode 7 beta tidak dengan kode saya :) Build yang sama melalui Xcode 6.4 berfungsi dengan baik dan tidak ada email dari Apple yang melaporkan bahwa masalah jadi masalahnya adalah dengan Xcode 7 beta 4 tidak dengan kode atau profil.
The iOSDev

2

Inilah yang diperbaiki untuk saya. (Saya sudah mencoba mengaktifkan / menonaktifkan kemampuan, membuat ulang profil penyediaan, dll).

Di tab Bangun Pengaturan , di Kepemilikan Penandatanganan Kode , file .entitlements saya tidak ditautkan untuk semua bagian. Setelah saya menambahkannya ke bagian Any SDK, kesalahan telah diatasi.

masukkan deskripsi gambar di sini


2

Untuk mengatasi ini untuk aplikasi 'dikeluarkan' expo, saya pergi ke tab kapabilitas, mengaktifkan push, lalu menonaktifkannya lagi. Ini menghapus pengaturan 'hak' APNS dari file .entitlements.


mencoba ini pada proyek "terlontar" saya, tapi saya masih mendapatkan notifikasi ini
webdevbyjoss

1

Saya memiliki masalah yang sama dan solusi saya adalah menambahkan hak pemberitahuan push dari Target -> Kemampuan.


0

Ini terjadi pada saya tiba-tiba karena profil distribusi aplikasi saya telah kedaluwarsa. Xcode mulai menggunakan profil wildcard sebagai gantinya, yang tidak memiliki hak pemberitahuan push diaktifkan. Saya tidak menerima peringatan apa pun. Cara mengatasinya mudah; Saya hanya perlu membuat profil distribusi lain untuk aplikasi saya di Pusat Anggota Pengembang Apple, mengunduhnya, dan klik dua kali untuk menginstal di Xcode.


0

Ada beberapa saran yang sangat bagus di sini.

Mengacu pada tangkapan layar terakhir yang disediakan Mina, setelah awalnya mengarsipkan aplikasi saya, profil penyediaan yang disebutkan saat mengunggah berisi wildcard (XC. *). Ini salah.

Butuh upaya yang cukup besar untuk menyelesaikan ini. Saya harus melakukan kombinasi saran yang diberikan Simon Woodside & Mina Fawzy.

Jika Anda memiliki sertifikat dan profil penyediaan yang ada terkait dengan proyek Anda, sekarang saat yang tepat untuk menghapus semuanya secara lokal, dan mencabut semuanya dari jarak jauh. Beri diri Anda awal yang baru.

Saran rinci Mina Fawzy sangat bagus. Melakukan saran Mina, jika dilakukan dengan benar, akan menjagamu secara online.

Masukkan saran Simon. Dua hal yang perlu saya periksa di dalam proyek saya. Menggunakan XCode, buka di sini:

PROYEK -> PENGATURAN BUILD -> PENANDAAN KODE

Tinjau properti Penandatanganan Identitas dan properti Profil Penyedia . Pastikan Anda mengatur kedua properti itu dengan nama proyek Anda. Jangan izinkan XCode memilih secara otomatis untuk Anda, dan jangan gunakan identitas penandatanganan kode generik (mis. Pengembang Iphone).

Pastikan Anda benar-benar dapat menginstal aplikasi ke perangkat Anda sebelum memutuskan untuk mengarsipkan.


0

Masalah terbesar yang saya miliki setelah mengaktifkan Push Notificationdari Capabilitiesdan membuat ulang semua sertifikat adalah bahwa nama Target dan nama folder tempat disimpan proyek terdiri dari 2 string yang dipisahkan oleh ruang. Setelah menghapus semua ruang bekerja dengan baik!


1
Aplikasi saya tidak menggunakan pemberitahuan push tetapi saya masih mendapatkan peringatan ini dari apel. Tolong sarankan
Chandni

0

Saya mempunyai masalah ini karena file hak saya salah karena pengeditan manual sebelumnya. Saya menghapus sintaks entri kepemilikan yang diformat dengan salah dan kemudian saya dapat mengklik "perbaiki" pada tab kemampuan dan Xcode menambahkan kepemilikan ke file saya.

Berikut adalah contoh file hak yang diformat dengan benar (" Runner.entitlements"):

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>aps-environment</key>
    <string>development</string>
    <key>com.apple.developer.applesignin</key>
    <array>
        <string>Default</string>
    </array>
</dict>
</plist>

0

FIX IDEA Hai teman-teman jadi saya telah membuat aplikasi dan tidak menggunakan fungsi push notification tetapi saya masih mendapat email. Setelah memeriksa sertifikat, id dan profil pengidentifikasi bundel yang saya gunakan untuk membuat aplikasi saya di apple store terhubung di portal pengembang apple saya menyadari bahwa pemberitahuan push dihidupkan.

Yang harus Anda lakukan adalah:

pergi ke situs login pengembang apple di mana Anda dapat mengelola sertifikat Anda juga 2. pilih "Sertifikat, ID dan Profil" Tab di sebelah kanan 3. sekarang pilih "Identifiers" 4. dan bundel id dari daftar ke 5. kanan sekarang gulir ke bawah sampai Anda melihat pemberitahuan push 6. matikan 7. arsipkan bangunan Anda dan unggah kembali ke Apple Store Connect

Semoga ini bisa membantu!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.