自从(iOS 7发布)以来,有没有办法在PC/Mac上不使用iTunes而获得UDID?

Tom*_*idd 80 itunes udid provisioning-profile ios7

我正在为我的公司开发一个应用程序,我们正在通过将iPad添加到公司的iOS开发中心帐户来慢慢让人们进入"测试版".从那里我们为本地Intranet分发做一个临时构建.

在我的最后一次演出中,我会引导人们找到其中一个"为我找到我的UDID"应用程序,然后让他们向我发送它找到的UDID.

iOS 7已经关闭了 - 这些应用程序现在都已消失,如果你还有一个,它会返回一些与UDID无关的GUID.

所以我要做的就是将这些东西连接到我的Mac上,然后从iTunes中获取UDID,这有点麻烦(但是比试图向他们解释如何从iTunes获取它更加乏味,假设他们甚至安装它).有时它会尝试与我的Mac同步,除了在设备上放置我不想要的配置文件之外,它似乎没有任何影响.至少有一次我有一台iPad突然决定从iOS 6升级到iOS 7,我不确定是否与插入有关(在这种情况下,用户不希望升级).

除了将其插入机器之外,还有其他方法可以从iPad获取UDID吗?

要清楚:我不是想在应用程序中获取UDID,我只是想到了将UDID添加到我们的开发人员配置文件中的设备列表以便分发的最快方法.

VH-*_*NZZ 102

从iOS设备上的Safari 导航到http://get.udid.io/.它就像一个魅力,既不需要iTunes也不需要任何其他计算机.也没有安装应用程序.

编辑:

另外,如果您(可以理解)宁愿将此.mobileconfig证书托管在您的服务器上,请查看从.mobileconfig获取设备UDID.

做你自己:

拥有托管在服务器上的.mobileconfig示例的副本,并用您喜欢的语言编写2-3个小脚本来处理以下流程:

  1. 在Safari上导航到重定向到下面的enroll.mobileconfig的URL .这使iOS打开"设置"应用并显示配置文件.
  2. 接受配置文件后,iOS会切换回Safari并将DeviceAttributes数组发布到指定的enroll.mobileconfig URL.
  3. POST数据将包含一个带有请求属性的.plist文件(参见下面的示例).其中一个将是神圣的UDID.

备注:你应该有一些用户友好的消息.具体来说,我们甚至有一个步骤0.要求用户提供我们临时存储在HTTP会话中的名称和电子邮件,然后将请求重定向到mobileconfig配置文件.我们最终将此信息与iPhone数据相匹配,并发送友好的确认电子邮件.HTH.

enroll.mobileconfig

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <dict>
            <key>URL</key>
            <string>http://support.devcorp.com/uuid/returnurl/</string>
            <key>DeviceAttributes</key>
            <array>
            <string>DEVICE_NAME</string>
            <string>UDID</string>
            <string>PRODUCT</string>
            <string>VERSION</string>
            <string>SERIAL</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>DevCorp Inc.</string>
        <key>PayloadDisplayName</key>
        <string>Profile Service</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>C5FB9D0D-0BE7-4F98-82CC-5D0EA74F8CF8</string> <!-- any random UUID -->
        <key>PayloadIdentifier</key>
        <string>com.devcorp.profile-service</string>
        <key>PayloadDescription</key>
        <string>This is a temporary profile to enroll your device for ad-hoc app distribution</string>
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

示例.plist由iPhone发布到给定的URL

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PRODUCT</key>
    <string>iPhone4,1</string>
    <key>SERIAL</key>
    <string>DNPGWR2VCTC0</string>
    <key>UDID</key>
    <string>b01ea7bc2237fed21bfe403c6d2b942ddb3c12c3</string>
    <key>VERSION</key>
    <string>11A465</string>
</dict>
Run Code Online (Sandbox Code Playgroud)

  • 请勿使用此站点,因为它会使您安装Profile服务,该服务可以使您的数据可供站点所有者访问. (9认同)
  • 喜.将数据发送到Apple并将其发送到未知网站之间存在差异.有关在设备上安装配置文件的警告很多,因为它们允许拦截您的数据.我不会这样做. (4认同)
  • @checklist:在网上发布任何内容都有合理的担忧.再次,如果您使用_convenience_服务感到不舒服,那就很精细了.**EDIT**部分答案告诉您如何制作自己的,从而解除您可能拥有的任何担忧,同时保持其简洁性.HTH. (3认同)
  • 这应该是公认的答案.太好了! (2认同)

sof*_*ved 73

这是我的研究结果:

从iOS 7开始,Apple已将UDID隐藏在所有公共API中.任何以FFFF开头的UDID都是伪造的ID.以前工作的"发送UDID"应用程序不能再用于收集测试设备的UDID.(叹!)

当设备连接到XCode(在管理器中),以及设备连接到iTunes时,会显示UDID(尽管您必须单击"序列号"才能显示标识符).

如果您需要获取要添加到配置文件的设备的UDID,并且无法在XCode中自行完成,则必须完成从iTunes复制/粘贴它的步骤.

更新 - 请参阅下面的okiharaherbst答案,了解基于脚本的方法,允许测试用户通过在服务器上托管mobileconfig文件为您提供设备UDID

  • 有没有觉得Apple讨厌开发者? (194认同)
  • "你必须完成从iTunes复制/粘贴它的步骤".这个网站可以帮助一下:http://whatsmyudid.com (14认同)
  • 右键单击该值允许您复制值(Windows版本的iTunes - 不确定mac版本) (2认同)

小智 15

希望这会有所帮助:

  1. 将iPhone连接到您的MAC(我没有尝试使用Windows)
  2. 单击左上角的Apple徽标 >选择" 关于本机"
  3. Overview选项卡> System Report中
  4. 左栏中的硬件 > USB >
  5. 然后在右侧窗格中选择iPhone
  6. 在底部窗格 - >" 序列号 "

- >那个序列号是UDID


com*_*tic 13

如果您的任何用户正在运行linux,他们可以从终端使用它:

lsusb -v 2> /dev/null | grep -e "Apple Inc" -A 2
Run Code Online (Sandbox Code Playgroud)

这将获取所连接USB设备的所有信息,并使用"Apple Inc"打印行,包括接下来的2行.

结果如下:

iManufacturer           1 Apple Inc.
iProduct                2 iPad
iSerial                 3 7ddf32e17a6ac5ce04a8ecbf782ca509...
Run Code Online (Sandbox Code Playgroud)

这对我来说在iOS5上运行 - > iOS7,我还没有试过任何iOS4设备.

IMO这比我找到的任何Win/Mac/Browser解决方案都快,并且不需要安装"软件".


小智 5

一旦用户注册,TestFlight似乎能够提取UDID:

https://testflightapp.com