自iOS 7发布以来,有没有一种不使用PC/Mac上的iTunes获取UDID的方法?

82
我正在为我的公司开发一个应用程序,我们正在逐步让人们进入“beta”测试阶段,通过将他们的iPad添加到公司的iOS Dev Center账户中实现。然后,我们会进行本地Intranet分发的Ad hoc版本构建。
在上一个工作中,我会引导人们使用“寻找我的UDID”应用程序之一,然后让他们将它发给我。
iOS 7已经切断了这个功能-这些应用程序现在全部都消失了,如果你仍然有一个,它会返回一些与UDID无关的GUID。
因此,我现在需要连接每个设备到我的Mac电脑,然后从iTunes中获取UDID,这有点麻烦(但比尝试向他们解释如何从iTunes中获取UDID(假设他们甚至安装了它)要简单得多)。有时候它会尝试与我的Mac同步,但似乎除了在设备上安装我不想要的配置文件之外没有任何影响。而且至少有一次,我曾经让iPad自己决定将iOS 6升级到iOS 7,我不确定这是否与连接到电脑有关(在这种情况下,用户不希望进行升级)。
那么,有没有其他方法可以从iPad中获取UDID,而不是将其连接到电脑上?
明确说明:我并不是要在应用程序中获取UDID,我只是在想获取UDID以便将其添加到我们的开发者分发配置文件中的设备列表中的最快方式。

http://whatsmyudid.com/ :D 你可以下载一个UDID应用程序并将邮件发送给我。你别无选择。 - Jordan Montel
1
@JordanMontel 这是一个很酷的网站,尽管它使用的是一个旧版本的iTunes,不再与外观/感觉相匹配,而复制命令假定您正在运行Mac。而UDID应用程序不再给出有效的UDID,因为iOS 7。 - Tom Kidd
2
哦,是的,我记得在iOS 7中......应用程序发送的UDID以FFFF开头。 因此,唯一的解决方案是将设备插入iTunes:s - Jordan Montel
2
TestFlight通过使用配置文件在iOS 7设备上实现了这一点。可以研究一下它是如何工作的。 - Jesse Rusak
关于TestFlight - 这是从他们的错误页面https://testflightapp.com/sdk/ios/known_issues/中获取的:“当前问题在iOS 7中,uniqueIdentifier不再返回设备的UDID,因此即使您使用setDeviceIdentifier:,iOS 7用户也将匿名显示在TestFlight上。应用内更新也将无法工作。 当使用ARC构建时,Xcode 5将不允许您调用uniqueIdentifier,因为它已从UIDevice的标头中在iOS 7中删除。删除该行将导致用户显示为匿名,并停止应用内更新的工作。” - software evolved
显示剩余4条评论
18个回答

1
请使用TestFlight获取测试人员的UDID而不要使用不可信的来源,例如http://get.udid.io/
您可以: 1. 通过TestFlight网页向测试人员发送电子邮件邀请。测试人员打开电子邮件中的链接并从TestFlight安装配置文件。因此,开发人员可以在TestFlight网页上获取UDID。 2. 将这些UDID添加到Apple配额门户网站中。
(参考:http://help.testflightapp.com/customer/portal/articles/829537-how-does-it-work-
该过程不需要测试人员使用Mac/PC获取UDID(更方便)。我认为TestFlight是一个可信赖的公司(在将UDID传递给该公司时无需担心)。
我已经在iOS 8上测试了这种方法,它有效。

1
udid.io 有害吗? - Ivanka Todorova

1

试试这个在线工具http://www.easy-udid.com。我在各种iOS设备(iOS 6和7)上测试过,效果很好。这是一个方便的工具,可以快速地将客户的UDID添加到开发者的配置文件中。


2
但是这个网站要求我安装一个“配置文件”。而且iOS警告我这样做会修改我的设置。我不喜欢这样。 - Nicolas Barbulesco

0
如果您使用的是Mac电脑,可以从“关于本机”中获取“系统报告”。连接设备后,打开USB部分并单击iPhone。 UUID将显示在“序列号”下方。

0

1
亲爱的未来人,这个解决方案可行,在iOS 7.1上。 - Nicolas Barbulesco
1
当然可以,或者您可以使用此域名访问相同的功能www.my-udid.com。 - Alex McPherson
很遗憾,这个解决方案已经不再适用了。该地址出现错误:404,未找到。 - Nicolas Barbulesco

0

diawi.com 对我来说很好用,无需通过数据线连接 iPhone 等设备:只需按照他们的“我的设备”标签进行操作即可安装他们的配置文件,并显示 UDID 并添加通过邮件发送的选项。


0

我认为iTunes似乎是唯一的答案,这非常不幸。


你读过答案了吗?你可以使用系统信息、iPhone配置实用程序、http://get.udid.io网页和组织者、TestFlight等工具。 - LightMan

-2
请在您的设备浏览器中使用udid.io,或安装iTools并连接设备以获取正确的UDID。
Adarsh E M

2
"我们希望你是测试人员、移动应用程序开发者或类似的人。嗯,不冒犯,但那个网站看起来有点可疑,未签名的配置文件并不令人放心。更不用说我不确定他们如何获取UDID了。" - Tom Kidd
现在已经没有任何被批准的机制可以让网站或工具从未越狱的设备中检索真实的UDID。我建议避免使用任何声称可以做到这一点的解决方案。 - software evolved
@Schnapple 该站利用通常由MDM使用(但也被TestFlight等服务使用)的配置文件来检索UDID。我同意未签名部分,但除此之外,它不应该构成问题。您仍然可以从iOS设备获取UDID,只是无法在应用程序中获取; UDID仍然广泛用于MDM。 - Calrion
1
对移动设备管理(MDM)系统进行了一些研究。API文档仅向企业开发人员发布,但据报道支持检索UDID的机制,因此我之前的说法(“现在没有任何批准的机制让站点或工具从设备中检索真实的UDID”)是错误的。 - software evolved
iTools?Mac OS 9回来了?:-) - Nicolas Barbulesco

-4

我们可以在iOS7中使用identifierForVendor

-(NSString*)uniqueIDForDevice
{
    NSString* uniqueIdentifier = nil;
    if( [UIDevice instancesRespondToSelector:@selector(identifierForVendor)] ) { // >=iOS 7
        uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    } else { //<=iOS6, Use UDID of Device       
            CFUUIDRef uuid = CFUUIDCreate(NULL);
            //uniqueIdentifier = ( NSString*)CFUUIDCreateString(NULL, uuid);- for non- ARC
            uniqueIdentifier = ( NSString*)CFBridgingRelease(CFUUIDCreateString(NULL, uuid));// for ARC
            CFRelease(uuid);
         }
    }
return uniqueIdentifier;
}

--重要提示--

UDID和identifierForVendor是不同的:---

1.) On uninstalling  and reinstalling the app identifierForVendor will change.

2.) The value of identifierForVendor remains the same for all the apps installed from the same vendor on the device.

3.) The value of identifierForVendor also changes for all the apps if any of the app (from same vendor) is reinstalled.

2
我不是在寻找一种在应用程序内识别设备的方法,而是想要一种获取UDID的方式,而不必使用除设备本身以外的任何东西,以便将其添加到adhoc预配文件中。越来越多的人从未直接将iOS设备与计算机同步-设备可以自行更新,通过iCloud同步设置等,有时将同步到iTunes会搞砸一切。答案似乎是否定的。 - Tom Kidd
我需要在我的iPhone上全部输入吗?在哪里?这将给我我的UDID吗?我认为这个答案并没有回答问题:如何获取我的iPhone的UDID? - Nicolas Barbulesco

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接