Pertanyaan Cara memisahkan sandbox dan token perangkat produksi pemberitahuan APNS iOS


Saya tidak berhati-hati dan mencampur sandbox dan token perangkat produksi dalam tabel db yang sama. Ini menyebabkan beberapa perangkat yang memasang aplikasi produksi tidak dapat menerima pemberitahuan push.

Bagaimana cara memisahkan token kotak pasir dan token produksi dari tabel db? Bantuan Anda sangat dihargai !! Terima kasih!


6
2017-09-28 09:35


asal


Jawaban:


Anda mungkin harus memasukkan tabel database Anda dengan semacam UDID (Anda dapat membuat sendiri dengan hashing ID bundel dan alamat MAC perangkat) DAN bidang kedua yang menunjukkan apakah token adalah "pengembangan" atau "produksi" "token. Bagian ketiga bisa berupa token yang sebenarnya.

Dalam delegasi aplikasi Anda dalam metode delegasi didRegisterForRemoteNotificationsWithDeviceToken Anda dapat menambahkan logika untuk menentukan apakah aplikasi Anda berjalan dalam pengembangan vs. mode produksi dan memperbarui database Anda dengan token perangkat berdasarkan UDID dan "mode" yang sedang dijalankan aplikasi.

Kode Anda mungkin terlihat seperti ini:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{
// Update the device token record in our database
#if !defined (CONFIGURATION_Distribution)
   // Update the database with our development device token
#endif

#if defined (CONFIGURATION_Distribution)
   // Update the database with our production device token
#endif
}

Untuk melakukan ini, Anda harus pergi ke Proyek Anda -> Pengaturan Build. Di bagian Macros Preprocessor, ketik CONFIGURATION_ dan tekan Enter. Ini harus membuat makro preprocessor untuk setiap konfigurasi build Anda. Dalam hal ini konfigurasi build saya adalah AdHoc, Debug, Distribusi, dan Rilis.

Ini menciptakan CONFIGURATION_AdHoc, CONFIGURATION_Debug, CONFIGURATION_Distribution, dan CONFIGURATION_Rilis untuk saya.


6
2017-11-25 22:24