Pertanyaan Bagaimana cara memperbaiki string hak lingkungan 'aps-environment' yang tidak ditemukan untuk aplikasi ”di Xcode 4.3?


Saya sudah berusaha sangat keras untuk membuat aplikasi iOS sederhana sederhana yang dapat menerima pemberitahuan push. Satu-satunya alasan saya untuk melakukan ini adalah membuat prosedur bagi beberapa anggota tim lain untuk digunakan, dan belum dapat menemukan versi terbaru dari instruksi tersebut di tempat lain di web. Toko kami cukup baru untuk dev iOS, saya pribadi benar-benar tidak berpengalaman dengan iOS dev dan Xcode. Saya telah tersandung melalui puluhan tutorial, artikel, dan posting masalah dari Apple dan di tempat lain dan saya merasa sepertinya saya hampir di sana ...

Di sinilah saya harus (perhatikan saya menggunakan Xcode 4.3 dan mencoba awalnya untuk menyebarkan hanya untuk iOS 5.1, dan saya mengumpulkan bahwa beberapa hal mungkin telah berubah baru-baru ini vs versi Xcode sebelumnya, tetapi sekali lagi saya baru untuk semua ini - dan menemukannya benar-benar membingungkan dan berbelit-belit):

1) Saya memiliki profil penyediaan di iPhone saya yang telah mengaktifkan Push

2) Dalam proyek Xcode uji saya, saya punya profil penyediaan yang dipilih sebagai identitas penandatanganan (di Pengaturan Build> Penandatanganan Kode)

enter image description here

3) Saya memiliki pengidentifikasi bundel saya di bawah Ringkasan dan Info> Properti Target iOS Kustom diatur dengan benar * (Saya pikir ??)

4) Saya sudah mendapat registerForRemoteNotificationTypes yang dipanggil di delegasi saya didFinishLaunchingWithOptions

5) Saya sudah mendapatRegisterForRemoteNotificationsWithDeviceToken dan didFailToRegisterForRemoteNotificationsWithError di delegasi saya, mengatur untuk mencatat token perangkat atau kesalahan masing-masing

6) Saya mendapat Hak Pengaktifan yang dicentang pada Ringkasan.

7) Tepat di bawah bahwa File Kepemilikan yang dipilih adalah Tinker6 (nama proyek pengujian saya), yang dihasilkan secara otomatis ketika saya memeriksa Kepemilikan Aktif

8) Dalam file Tinker6.entitlements, saya mendapat yang berikut (yang telah saya kumpulkan dengan benar berdasarkan beberapa posting yang berbeda di seluruh web, tetapi yang saya tidak dapat menemukan sesuatu yang pasti dari Apple itu sendiri):

enter image description here

Diperbarui

9) Juga, saya telah mencoba semuanya tanpa file hak, dan pada dasarnya mendapatkan hasil yang sama.

10) Isi file mobileprovision saya termasuk hak dengan benar (saya sudah mengacak nomor dan domain tetapi secara struktural sama):

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>

/ pembaruan akhir

Ketika saya mencoba untuk menjalankan ini di perangkat saya, saya mendapatkan kesalahan berikut dalam output Xcode:

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}

Saya sudah mencoba pengaturan get-task-allow to NO, aps-environment untuk produksi, keempat kemungkinan kombinasi, hal yang sama.

Bagaimana saya bisa melewati ini? Di mana dokumentasi definitif tentang ini?

- latar belakang lebih lanjut berikut -

* Sejauh ID paket, saya masih tidak jelas tentang bagaimana ini harus diatur dalam kaitannya dengan App Id Id dan Profil di profil Provisioning. Di portal Provisioning di bawah App Id Saya punya ini (sekali lagi, mengacak nomor dan domain):

enter image description here

Dan dua tempat bundel id diatur saya punya ini:

enter image description here enter image description here

Saya sama sekali tidak yakin ini benar atau apakah satu atau keduanya harus ditetapkan ke 12355456A7.com.whatever.tinker, meskipun saya sudah mencoba yang sebelumnya dalam proses tanpa keberhasilan ...

Catatan Saya menyadari ada banyak posting dengan judul yang sama, namun mereka semua tampaknya ketinggalan zaman berdasarkan nama file dan sebagainya yang diberikan, dan fakta tidak ada solusi yang tampaknya berguna. Saya berharap semakin banyak detail yang saya berikan akan menjamin respons kualitas. Saya mungkin akan memberikan hadiah sesegera mungkin dan jika Anda memberikan jawaban berkualitas tinggi yang mengarah ke solusi, saya akan menghadiahkan Anda karunia serta mempromosikan jawaban Anda melalui twitter dan blog saya. Terutama jika Anda posting silang yang benar-benar baik "di sini adalah tepat 500 langkah yang Anda butuhkan untuk mendapatkan aplikasi notifikasi push sederhana yang bekerja termasuk penyediaan dan apa pun yang Anda inginkan "artikel di blog Anda atau apa pun.


147
2018-06-11 20:30


asal


Jawaban:


Jika Anda membuat profil penyediaan Anda sebelum mengonfigurasi app ID untuk push, cobalah untuk meregenerasi profil provisioning.

iOS Provisioning Portal -> Provisioning -> Sertifikat Anda -> EDIT -> Buat   edit -> Unduh ketentuan baru

Bekerja untukku. Sekarang saya bisa menggunakan push.


93
2018-06-18 14:17



Pertama-tama, Anda tidak perlu file hak kecuali Anda menambahkan pasangan kunci / nilai khusus yang tidak ada di profil penyediaan. Ketika aplikasi Anda dibangun, setiap hak dari profil penyediaan akan disalin ke aplikasi.

Mengingat bahwa Anda masih melihat pesan kesalahan tentang hak yang hilang, saya hanya bisa berasumsi opsi penandatanganan kode tidak benar dalam pengaturan build.

Anda perlu memastikan bahwa profil yang benar dipilih untuk konfigurasi "Debug", dan untuk amannya, Anda telah memilih profil yang benar untuk "Debug" dan simpul anak berlabel "Setiap SDK iOS":

enter image description here

Meskipun tangkapan layar ini menunjukkan profil "Pengembang Otomatis" yang dipilih, pilih profil penyediaan yang tepat yang Anda inginkan dari tarik turun, hanya untuk tujuan pengujian. Bisa jadi Xcode secara otomatis memilih profil yang berbeda dari yang Anda inginkan.

Juga pastikan untuk membuat versi bersih, hapus aplikasi sepenuhnya dari perangkat Anda, dll. Ini hanya untuk memastikan Anda tidak memiliki bulu-bulu lama yang berkeliaran.


67
2018-06-14 14:20



Saya telah menghadapi masalah ini di Xcode 8. Anda harus mengaktifkan Target—> capabilities—> push notification. Periksa tangkapan layar.

enter image description here


59
2017-09-21 11:46



Cara termudah adalah melakukan ini dari akun Anda dengan Xcode:

Kepala ke Xcode -> Preferensi -> Pilih Tab Akun -> Lihat Detail -> Tekan tombol segarkan di kiri bawah -> Selesai.

Bangun lagi dan itu harus bekerja.


47
2017-08-10 11:02



Ok, saya menghadapi masalah sebelumnya. Karena pemberitahuan push memerlukan implementasi serveride, bagi saya membuat profil bukan pilihan. Jadi saya menemukan solusi ini TANPA membuat profil penyediaan baru.

Xcode tidak benar memilih profil penyediaan yang benar meskipun kami memilihnya dengan benar.

Pertama pergi ke organizer. Pada tab Devices, profil Provisioning dari daftar Library, pilih profil yang ingin kami gunakan. Klik kanan padanya dan kemudian "Ungkap Profil di Finder".

enter image description here

Profil yang benar akan dipilih di jendela Finder yang terbuka. Catat namanya.

enter image description here

Sekarang, masuk ke Xcode> Log Navigator. Pilih filter untuk "Semua" dan "Semua Pesan". Sekarang di tahap terakhir (Build Target) cari langkah yang disebut "ProcessProductPackaging" perluas. Perhatikan nama profil penyediaan. Mereka seharusnya TIDAK cocok jika Anda mengalami kesalahan. enter image description here

Sekarang di jendela Finder Terbuka menghapus profil penyediaan nakal yang menggunakan Xcode. Sekarang bangun lagi. Kesalahan harus diselesaikan. Jika tidak ulangi proses untuk menemukan profil nakal lain untuk menghapusnya.

Semoga ini membantu.


18
2017-11-29 02:48



Jawabannya adalah: mulai dari awal, lakukan semuanya yang sama tetapi buat profil provisioning baru, dan instal. Itu berhasil. Memeriksa semua detail (hak dalam penyediaan seluler) terlihat persis sama dengan semua yang ada di pertanyaanku di sini. Tapi sekarang berhasil. Apple: WAT?

Tentu saja, sudah jelas untuk melakukan ini jika dimungkinkan untuk menghapus profil penyediaan. Tapi karena itu tidak mungkin, saya tidak ingin mengacaukan tim kami dengan banyak profil tes. Namun, akhirnya kehilangan kesabaran dan mencobanya, dan akhirnya berhasil. Whatevs.


17
2018-06-19 16:19



Hapus profil penyediaan lama dari Xcode di Organizer.

Kemudian, buat profil provisioning baru untuk id bundel yang sama di portal penyediaan iOS (setelah Anda mengaktifkan push).

Impor profil provisioning baru di XCode, atur di pengaturan pembuatan aplikasi Anda.

Bangun, jalankan, berfungsi.

Saya baru melakukannya.

Butuh 10 menit dari kesalahan ke kesuksesan.


17
2018-03-01 20:44