1

我可以从mac上的objective-c找到连接的Iphone设备的UUID吗?通过 USB 电缆连接的 Iphone 列表。

4

3 回答 3

1

使用 ioreg 命令,并 grep 接收到的结果。一个极简的实现:

- (NSString*)getConnectedIphoneUIID
{
NSTask *ioRegTask = [[NSTask alloc] init];
[ioRegTask setLaunchPath:@"/usr/sbin/ioreg"];
[ioRegTask setArguments:[NSArray arrayWithObjects:@"-Src",@"IOUSBDevice",nil]];

NSTask *grepTask = [[NSTask alloc] init];
[grepTask setLaunchPath:@"/usr/bin/grep"];
[grepTask setArguments:[NSArray arrayWithObjects:@"-i", @"usb serial number", nil]];

NSPipe *ioregToGrepPipe = [[NSPipe alloc] init];
[ioRegTask setStandardOutput:ioregToGrepPipe];
[grepTask setStandardInput:ioregToGrepPipe];

NSPipe *outputPipe = [[NSPipe alloc] init];
[grepTask setStandardOutput:outputPipe];
NSFileHandle *outputFileHandle = [[outputPipe fileHandleForReading] retain];

[ioRegTask launch];
[grepTask launch];


NSData *outputData = [[outputFileHandle readDataToEndOfFile] retain];

[ioRegTask release];
[grepTask release];
[outputData release];

NSString *nvcap = [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding];

     return nvcap;
  }

我可以合并更多检查并进一步解析结果,以确保它真的是一部 iPhone,以防万一那里列出了更多设置了“usb 序列号”属性的设备。检查“SupportsIPhoneOS”属性将进一步确认设备的身份。这样,我实际上可以建立一个连接的 iPhone/iPod 设备列表,并从“usb 序列号”属性中获取它们的 UUID。

于 2009-10-05T13:51:42.967 回答
0

苹果保持 iPhone 相当锁定。我认为如果没有一些通过 USB 的低级代码,你会发现从 iPhone 查询任何东西都不容易。

您需要这样做有什么具体原因吗?你能不能只看一下 Xcode 的 Organizer 窗口,看看那里连接了哪些设备?Organizer 显示 UUID 和有关连接设备的更多信息,包括崩溃长、iPhone 的控制台、屏幕截图和配置。

于 2009-10-01T23:52:31.613 回答
-1

尝试这个:

[[UIDevice device] uniqueIdentifier]

每个连接的设备。

于 2009-10-01T14:40:15.850 回答