2013-08-16 6 views
10

के लिए अद्वितीय पहचानकर्ता ऐप्पल ऐप्स के लिए अद्वितीय डिवाइस पहचानकर्ता को बहिष्कृत कर रहा है, इसलिए एमडीएम के साथ नामांकित डिवाइस पर एंटरप्राइज़ ऐप को लिंक करने का सबसे अच्छा तरीका क्या है?आईओएस एमडीएम

एमडीएम प्रोटोकॉल संदर्भ दस्तावेज़ से, नामांकन अभी भी चेक-इन प्रक्रिया के लिए यूडीआईडी ​​का उपयोग कर रहा है।

हम नए पहचानकर्ता फॉरवेंडर का उपयोग नहीं कर सकते क्योंकि यह चेक-इन के लिए यूडीआईडी ​​जैसा नहीं है।

मुझे अद्यतन कैसे मैं अपने एमडीएम समाधान लागू करते हैं,

  1. डिवाइस एक टोकन और डिवाइस UDID साथ चेक-इन होगा एमडीएम सर्वर से (एक है कि एप्पल एपीआई को हटा रहा है)
  2. डिवाइस भेज देंगे एमडीएम सर्वर (वाईफ़ाई मैक योजक, सीरियल नंबर, ओएस संस्करण, और अन्य इंफोस) के लिए डिवाइस जानकारी
  3. एक क्लाइंट ऐप होगा जो रीस्टफुल एपीआई के माध्यम से एमडीएम सर्वर से बात करेगा। (पहले मैं यूडीआईडी ​​को एक प्रमुख पहचानकर्ता के रूप में उपयोग कर रहा था)

मैं मैक पते का उपयोग करने के बारे में सोच रहा था लेकिन नवीनतम आईओएस 7 में सिस्टम हमेशा मूल्य 02: 00: 00: 00: 00: 00 वापस करेगा।

हम डिवाइस सीरियल नंबर भी नहीं प्राप्त कर सकते हैं।

तो मेरा प्रश्न फिर से, हम इस डिवाइस पर इस ऐप को कैसे जानते हैं कि सर्वर पर इस एमडीएम नामांकन से संबंधित है (3)। क्योंकि अब, ऐप में चेक-इन प्रक्रिया के साथ संदर्भित करने के लिए कोई सामान्य कुंजी नहीं है। सर्वर कैसे पता चलेगा कि कौन सा डिवाइस कौन सा है?

धन्यवाद।

+0

क्या आपको अपनी समस्या का समाधान मिला है? मेरा बहुत कुछ वही है। – noircc

+0

इसके लिए एकमात्र कामकाज पहचानकर्ता फॉरवेंडर का उपयोग करना है और इसे कीचेन में स्टोर करना है ताकि पहचानकर्ता फॉरवेंडर भी रहेगा उपयोगकर्ता ने एंटरप्राइज़ ऐप को पुनर्स्थापित कर दिया है। – adiman

+0

उत्तर के लिए टक्कर, मुझे एक ही समस्या का सामना करना पड़ रहा है लेकिन अभी तक कोई समाधान नहीं मिला है। – sm0ke21

उत्तर

5

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

एक बार जब आप अपने एप में अपनी कॉन्फ़िगरेशन को दबाएंगे, तो आप एपीआई कुंजी को नीचे की तरह कुछ के साथ खींच सकते हैं। अधिकांश मुख्यधारा के एमडीएम समाधान पहले से ही अपने नवीनतम संस्करणों में इस प्रकार की कार्यक्षमता का समर्थन करते हैं।

NSDictionary *config = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"com.apple.configuration.managed"]; 
NSString *apiKey = config[@"kAPIKey"]; 

if (apiKey) { 
    //We got an API key and we can use it 
} else { 
    //We didn't get an API key...something has gone wrong 
} 
0

मुझे कुछ महीने पहले मिले इस स्रोत का एक पठन होगा; http://www.doubleencore.com/2013/04/unique-identifiers/

वहां से मैंने CFUUID विधि का उपयोग किया जिसने मुझे अच्छी तरह से सेवा दी है।

NSString *uniqueID = [NSString stringWithFormat:@"%@", CFUUIDCreateString(NULL, CFUUIDCreate(NULL))];

+1

समस्या यह है कि, एमडीएम प्रोटोकॉल में पेलोड में CFUUID के लिए विकल्प अनुरोध नहीं है। एमडीएम केवल यूडीआईडी ​​और अन्य हार्डवेयर इंफोस भेजता है। तो, एमडीएम सर्वर को जो भेजा गया है उसके साथ CFUUID से संबंधित नहीं हो सकता है। – adiman

0

iOS 7 में, एप्पल अब हमेशा एक निश्चित मान देता है जब मैक क्वेरी करने विशेष रूप से एक आईडी योजना के लिए आधार के रूप में मैक को विफल करने के। तो अब आपको वास्तव में उपयोग करना चाहिए - [UIDevice IdentifierForVendor] या एक प्रति-स्थापित यूयूआईडी बनाएं।

+0

[UIDevice IdentifierForVendor] एमडीएम पेलोड द्वारा डिवाइस यूडीआईडी ​​से मेल नहीं खाता है। समस्या – adiman

+0

है मुझे अपने ऐप में भी एक ही समस्या का सामना करना पड़ रहा है। जब उपयोगकर्ता अपने डिवाइस में ओएस अपडेट करता है तब भी एक समस्या होगी। – Developer

+0

तो मुझे लगता है कि बेहतर विकल्प यह है कि हमें अपने डिवाइस में डिवाइस टोकन (यदि आप पुश अधिसूचना का उपयोग कर रहे हैं) उपयोगकर्ता को हैं। – Developer

0

[UIDevice uniqueIdentifier] को आईओएस 6.0 में [[UIDevice identifierForVendor] UUIDString] के साथ बदल दिया गया है।

2

हालांकि lidsinker के जवाब सही है, मुझे इस पर ध्यान केंद्रित तो कुछ अन्य लोगों ने इस खोज रहे हैं मदद की जा सकती हैं।

आप एंटरप्राइज़ ऐप बना सकते हैं और इसे एमडीएम के माध्यम से इंस्टॉल कर सकते हैं। डिवाइस नामांकित होने के बाद, एमडीएम डिवाइस पर एंटरप्राइज़ ऐप इंस्टॉल कर सकता है। एमडीएम एनएसयूसर डीफॉल्ट में डिफ़ॉल्ट कॉन्फ़िगरेशन भी सेट कर सकता है।

ऐप इसे lidsinker के उत्तर में वर्णित उपरोक्त के रूप में लॉन्च होने पर इसे पढ़ सकता है।

ऐप्पल यहां उदाहरण प्रदान करते हैं। https://developer.apple.com/library/content/samplecode/sc2279/Introduction/Intro.html

+0

क्या यह दृष्टिकोण गारंटी दे सकता है कि ऐप केवल नामांकित उपकरणों पर ही चलता है? मान लें कि कोई एप नामांकित डिवाइस से ऐप निकाल सकता है और उसे अनियंत्रित पर इंस्टॉल कर सकता है - क्या यह संभव है? –

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