2012-09-28 22 views
6

के सैंडबॉक्स और उत्पादन डिवाइस टोकन को अलग करने के लिए कैसे मैं सावधान नहीं हूं और उसी डीबी तालिका में सैंडबॉक्स और उत्पादन डिवाइस टोकन मिश्रण नहीं कर रहा हूं। यह कुछ उपकरणों की ओर जाता है जो उत्पादन ऐप इंस्टॉल करते हैं पुश अधिसूचना प्राप्त नहीं कर सकते हैं।आईओएस एपीएनएस अधिसूचना

डीबी टेबल से सैंडबॉक्स टोकन और उत्पादन टोकन को अलग कैसे करें? आपकी मदद अत्यधिक सराहनीय है!! धन्यवाद!

+0

यहां उत्तर दिया गया: http://stackoverflow.com/questions/10146911/determine-whether-app-is-communicating-with-apns-sandbox-or-production-environme – phatmann

उत्तर

6

आपको शायद कुछ प्रकार के यूडीआईडी ​​के साथ अपनी डेटाबेस तालिका की कुंजी बनाना चाहिए (आप बंडल आईडी और डिवाइस के मैक पते को हश करके स्वयं बना सकते हैं) और दूसरा क्षेत्र जो इंगित करता है कि टोकन एक "विकास" है या नहीं या एक "उत्पादन" टोकन। तीसरा क्षेत्र वास्तविक टोकन हो सकता है।

didRegisterForRemoteNotificationsWithDevice टोकन प्रतिनिधि विधि में आपके ऐप प्रतिनिधि में आप यह निर्धारित करने के लिए तर्क जोड़ सकते हैं कि आपका ऐप विकास बनाम उत्पादन मोड में चल रहा है या यूडीआईडी ​​के आधार पर डिवाइस टोकन के साथ अपना डेटाबेस अपडेट करें और "मोड" ऐप है । में चल

आपका कोड निम्नलिखित की तरह कुछ दिख सकता है:

- (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 
} 

यह आप अपने प्रोजेक्ट के लिए जाने की जरूरत है ऐसा करने के लिए -> सेटिंग्स बनाएँ। प्रीप्रोसेसर मैक्रोज़ अनुभाग में CONFIGURATION_ टाइप करें और एंटर दबाएं। यह आपके प्रत्येक बिल्ड कॉन्फ़िगरेशन के लिए प्रीप्रोसेसर मैक्रो बनाना चाहिए। इस मामले में मेरे निर्माण विन्यास AdHoc, डीबग, वितरण, और रिलीज हैं।

यह CONFIGURATION_AdHoc, CONFIGURATION_Debug, CONFIGURATION_Distribution, और CONFIGURATION_Release मेरे लिए बनाता है।

+0

बस यह बताने में सक्षम होना अच्छा होगा कोड द्वारा, लेकिन ऐसा लगता है कि ऐसा करने का एकमात्र तरीका है। –

+0

उदाहरण के लिए, मेरे पास पहले से ही यूयूआईडी के लिए एक फ़ील्ड है, साथ ही एक फ़ील्ड जो अधिसूचना इंजन है। इसलिए डीबग बिल्ड के लिए मुझे अधिसूचना इंजन को 'सेबसंद' या इसी तरह सेट करना चाहिए। –

+0

क्या विकास उपकरण टोकन और उत्पादन उपकरण समान स्ट्रिंग टोकन हैं? –

संबंधित मुद्दे