2015-03-25 16 views
7

में यूडीआईडी ​​प्राप्त करें मुझे अपने आईओएस ऐप में उपयोग करने के लिए अपने आईफोन का यूडीआईडी ​​प्राप्त करने की आवश्यकता है।आईओएस 8 +

मेरी अनुप्रयोग के बारे में कुछ जानकारी:

  • मेरा ऐप जनता के लिए नहीं है और कभी नहीं यह दुकान को कर देगा, तो मैं किसी भी 3 पार्टी पुस्तकालयों का उपयोग कर सकते हैं। इसका उपयोग केवल कुछ कर्मचारियों द्वारा काम पर किया जाएगा।

  • मेरा डिवाइस हमेशा मैक में प्लग हो जाएगा, जबकि मेरा ऐप चल रहा है।

जिस तरह से मैं इसे देखता हूं, वहां केवल 2 तरीके ही किए जा सकते हैं।

  1. मेरे आईओएस ऐप के अंदर यूडीआईडी ​​प्राप्त करने के लिए किसी तृतीय पक्ष लाइब्रेरी का उपयोग करें।
  2. चूंकि मेरा ऐप चल रहा है, जबकि मैक मैक के माध्यम से यूडीआईडी ​​प्राप्त करने और आईफोन में अपने ऐप में किसी भी तरह से स्थानांतरित करने के बारे में हमेशा मैक में प्लग किया जाएगा।

किसी भी विचार की सराहना की जाएगी। धन्यवाद।

संपादित करें: प्रश्न यह है कि क्या आप किसी तीसरे पक्ष के पुस्तकालयों को जानते हैं या मेरे ऐप को चलाने के दौरान स्वचालित रूप से आईफोन के यूडीआईडी ​​प्राप्त करने के लिए एक बेहतर तरीका है?

संपादित करें 2: मैं जानता हूँ कि यह इस वेब ऐप्लिकेशन की वजह से ही मेरे फोन का उपयोग किया जा सकता है: http://get.udid.io/

कैसे काम करता है? इस

+0

... और वाई हमारा सवाल है ... है ...? – holex

+0

@ होलेक्स प्रश्न है, क्या आप किसी तीसरे पक्ष के पुस्तकालयों को जानते हैं जो ऐसा कर सकते हैं? जीथूब से मैंने जो कुछ भी कोशिश की वह अब तक विफल रही है। – donga

+0

'ओएसएक्स' के साथ इसका क्या संबंध है? – Popeye

उत्तर

-2

उपयोग: [[[UIDevice currentDevice] identifierForVendor] UUIDString];

+9

यूयूआईडी! = यूडीआईडी। वही बात नहीं है। – gnasher729

+1

यूयूआईडी पुनर्स्थापना के बाद भी नहीं रहेगा। मैं विशेष रूप से यूडीआईडी ​​चाहता हूं क्योंकि बाद में, मैं चाहता हूं कि मेरी वेब सेवा यूडीआईडी ​​के माध्यम से डिवाइस की पहचान करने में सक्षम हो। – donga

2

आप मैक पर कुछ को स्वचालित करने के UDID को पढ़ने के लिए कोशिश कर रहे हैं, तो आप UDID पाने के लिए system_profiler SPUSBDataType की तरह कुछ का उपयोग कर सकते है, मेरे फोन के लिए प्रवेश:

  Product ID: 0x12a8 
      Vendor ID: 0x05ac (Apple Inc.) 
      Version: 7.01 
      Serial Number: 7bed*********************************33 
      Speed: Up to 480 Mb/sec 
      Manufacturer: Apple Inc. 
      Location ID: 0x1d110000/6 
      Current Available (mA): 500 
      Current Required (mA): 500 
      Extra Operating Current (mA): 1600 

लाइन Serial NumberUDID है (मैंने इसे तारांकित किया है क्योंकि मैं बेवकूफ रूप से पागल हूं)।

नोट, कि UDID के बिना आप पहले कभी भी फ़ोन पर ऐप नहीं प्राप्त कर सकते थे।

आप मैक पर एक छोटी डिमन प्रक्रिया चला सकते हैं, इस जानकारी को पढ़ सकते हैं और एक बोनोजर सेवा बना सकते हैं जो अनुरोधकर्ताओं को जानकारी प्रदान करता है - यह एक स्मार्ट है।

+0

धन्यवाद, यही वह है जो मैं वास्तव में सोच रहा था। मेरी स्थिति थोड़ा और जटिल हो जाती है: यदि 1 से अधिक डिवाइस जुड़े हुए हैं तो क्या होगा? उदाहरण के लिए 2 आईफोन? ऐप किस आईफोन पर चल रहा है मैं अलग कैसे कर सकता हूं? – donga

+0

यह थोड़ा और अजीब है, लेकिन यदि आप http://get.udid.io/ का उपयोग करने के बारे में जानते हैं, तो आप [अपना स्वयं का सर्वर सेट अप कर सकते हैं] (http://stackoverflow.com/questions/19032162/is-here -ए-वे-से-आईओएस -7 एस-रिलीज-टू-गेट-द-ऑडिड-बिना-उपयोग-इट्यून्स-ऑन-ए), और एक बार जब आपका अपना सर्वर हो, तो आप इस यूडीआईडी ​​को वापस करने में सक्षम होना चाहिए फोन अगर यह अनुरोध करता है (मैंने इसे पूरा करने का परीक्षण नहीं किया है)। – Petesh

1

ऑनलाइन त्वरित रूप से, ऐसा लगता है कि आप libMobileGestalt.dylib नामक एक निजी ढांचे का उपयोग कर सकते हैं। मुझे लगता है कि विशेष रूप से dylib यहां पा सकते हैं,

CFStringRef value = MGCopyAnswer(kMGUniqueDeviceID); 
NSLog(@"Value: %@", value); 
CFRelease(value); 

पर मेरे Mac:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libMobileGestalt.dylib 

पुस्तकालय को जोड़ने और हैडर आयात करने के बाद, आप कुछ इस तरह (reference) ऐसा करने में सक्षम होना चाहिए

+0

libMobileGestalt MobileGestalt.c: 534: UniqueDeviceID तक कोई पहुंच नहीं है (देखें ) – Petesh

+0

@ पेटेश, आपको अपने ऐप को सफलतापूर्वक इसका उपयोग करने के लिए एक अधिकार प्रदान करने की भी आवश्यकता है। [इसके लिए यह जवाब] देखें [http://stackoverflow.com/a/27686125/119114)। – Nate

0

उपयोग ios में इस कोड को 9

NSUUID *tempUUID = [[UIDevice currentDevice] identifierForVendor]; 
NSString *stringForUDID = [tempUUID UUIDString]; 
NSCharacterSet *notAllowedChars = [[NSCharacterSet characterSetWithCharactersInString:@"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"] invertedSet]; 
NSString *resultString = [[stringForUDID componentsSeparatedByCharactersInSet:notAllowedChars] componentsJoinedByString:@""]; 
NSLog(@"Final string %@", resultString); 
+0

यह एंटरप्राइज़ ऐप्स के लिए काम नहीं करता है: ऐप पुन: स्थापना के बाद पहचानकर्ता परिवर्तन। – arts777

0

Here जो आपकी आवश्यकता

यहाँ के लिए सही लगता है GitHub परियोजना है कोड है कि काम करता है

#import <Foundation/Foundation.h> 
#import <CoreFoundation/CoreFoundation.h> 
#import <liblockdown.h> 
#include <stdio.h> 

... 
    LockdownConnectionRef connection = lockdown_connect(); 

    CFStringRef udid = (CFStringRef)lockdown_copy_value(connection, NULL, kLockdownUniqueDeviceIDKey); 
    CFShow(udid); 

    lockdown_disconnect(connection); 
है