2012-03-21 11 views
5

मैं एक शुरुआती आईफोन ऐप डेवलपर हूं और मैं आईबीएक्शन बटन के माध्यम से एक लेबल पर आईफोन या ऐप अद्वितीय पहचानकर्ता दिखाने की कोशिश कर रहा हूं। मैंने थोड़ा शोध किया और पता चला कि कुछ कोड को हटा दिया गया है और इसके बजाय CFUUID का उपयोग किया जाता है। नीचे दिया गया कोड वह है जो मैंने उपयोग किया था। हालांकि, हर बार जब मैं आईबीएक्शन बटन को स्पर्श करता हूं, यूयूआईडी बदलता है। मैं क्या गलत कर रहा हूं?CFUUIDCreate UUID लगातार बदलता है

CFUUIDRef udid = CFUUIDCreate(NULL); 

NSString *udidString = (NSString *) CFUUIDCreateString(NULL, udid); 

uuid.text= udidString; 

उत्तर

5

आप उपयोग कर सकते हैं

[[UIDevice currentDevice] uniqueIdentifier] 

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

यदि आपको ऐप इंस्टॉल में एक अद्वितीय पहचानकर्ता की आवश्यकता है तो आप नेटवर्क मैक पते का उपयोग कर सकते हैं।

+6

के रूप में बनाएं, इसे कीचेन में स्टोर करें और यह ऐप डिलीट/पुनर्स्थापित करेगा :)। – DougW

+0

ऐप्पल ने कुछ समय पहले नेटवर्क मैक पते तोड़ दिया। – LightningStryk

8

मैं तुम्हें CFUUIDCreate() के प्रयोजन के गलत समझा है, पढ़ें अपनी documentation आप समझ जाएंगे कि लगता है।

मुझे लगता है कि एपीआई अपने उद्देश्य को सही तरीके से सेवा दे रहा है, जो सार्वभौमिक अद्वितीय पहचानकर्ता बनाने का मतलब है हर बार जब आप इसे कॉल करते हैं तो यह आपको अद्वितीय पहचानकर्ता को यादृच्छिक रूप से वापस कर देगा।

+0

तो क्या ऐप के लिए निरंतर पहचानकर्ता प्राप्त करने का कोई और तरीका है? – wakaka

+1

एक को सहेजें और इसे – Sneakyness

4

जैसा ऊपर बताया गया है, CFUUIDCreate प्रत्येक बार चलने पर एक अलग यूयूआईडी बनाने का इरादा है। यदि आप चाहें तो इसे एक बना सकते हैं, और इसे अपने ऐप में स्टोर कर सकते हैं, या आप https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5 जैसे कुछ कोशिश कर सकते हैं - मूल रूप से, यह एमआईसी पते के एमडी 5 हैश का उपयोग करते हुए यूआईडीवीस पर एक अद्वितीय ग्लोबलडिवाइस इडेंटिफायर फ़ंक्शन प्रदान करता है।

[[UIDevice currentDevice] uniqueGlobalDeviceIdentifier] 
संबंधित मुद्दे