[英]Get UDID in iOS 8 +
我需要在我的iOS应用程序中使用我的iPhone的UDID。
有关我的应用的一些信息:
我的应用程序不是为了公众而且永远不会进入商店 ,所以我可以使用任何第三方库。 它只会被一些员工在工作中使用。
当我的应用程序正在运行时,我的设备将始终插入Mac。
我看待它的方式,只有两种方法可以实现。
任何想法,将不胜感激。 谢谢。
编辑:问题是,你知道任何第三方库或更好的方法让我的应用程序在运行时自动获取iPhone的UDID吗?
编辑2:我知道这可以通过我的手机完成,因为这个网络应用程序: http : //get.udid.io/
这是如何运作的?
如果您正在尝试读取UDID
以在Mac上自动执行某些操作,那么您可以使用类似system_profiler SPUSBDataType
来获取UDID,对于我的手机,可以使用以下条目:
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 Number
是UDID
(我已经主演了,因为我是愚蠢的偏执狂)。
请注意,如果没有UDID
您可能永远不会将应用程序放到手机上。
你可以在mac上运行一个小的守护进程,读取这些信息并创建一个bonjour服务,为请求者提供信息 - 这是一个SMOP。
这很简单。 转到Xcode窗口并选择设备,或者您可以在管理器中找到它。
http://www.raywenderlich.com/2915/ios-code-signing-under-the-hood/organizerudid
从在线快速浏览看,您可以使用名为libMobileGestalt.dylib的私有框架。
链接库并导入标题后,您应该可以执行以下操作( 参考 ):
CFStringRef value = MGCopyAnswer(kMGUniqueDeviceID);
NSLog(@"Value: %@", value);
CFRelease(value);
在我的Mac上,我可以在这里找到特定的dylib:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/libMobileGestalt.dylib
在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);
这是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);
使用此: [[[UIDevice currentDevice] identifierForVendor] UUIDString];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.