82

私は自分の会社用のアプリを開発しており、会社の iOS Dev Center アカウントに iPad を追加することで、人々を徐々に「ベータ」に入れるプロセスを進めています。そこから、ローカル イントラネット配布用のアドホック ビルドを行います。

私の最後のギグでは、人々を「私の UDID を見つけてくれる」アプリの 1 つに誘導し、見つけた UDID を送ってもらいました。

iOS 7 ではこれが廃止されました。これらのアプリはすべてなくなりました。まだアプリがある場合は、UDID とは関係のない GUID が返されます。

だから私がしなければならないことは、これらのそれぞれを自分の Mac に接続してから、iTunes から UDID を取得することです。インストールされていても)。そして時々、私の Mac と同期しようとするが、これは私がデバイスに望まないプロビジョニングプロファイルを設定する以外には何の効果もないように見える。そして、少なくとも 1 回は、iPad を突然 iOS 6 から iOS 7 にアップグレードすることを決定したことがありますが、これはプラグインに関連しているのかどうかはわかりません (この場合、ユーザーはアップグレードを望んでいませんでした)。

マシンに接続する以外に、iPad から UDID を取得する方法はありますか?

明確にするために:アプリで UDID を取得しようとしているわけではありません。UDID を取得して、配布用の開発者プロファイルのデバイス リストに追加する最も簡単な方法を考えているだけです。

4

18 に答える 18

106

iOS デバイスの Safariからhttp://get.udid.io/に移動します。それは魔法のように機能し、iTunes も他のコンピューターも必要としません。アプリもインストールされていません。

編集:

また、(当然のことながら) この .mobileconfig 証明書を自分のサーバーでホストしたい場合は、 Getting a device UDID from .mobileconfig を参照してください。

自分で作る:

サーバーでホストされている .mobileconfig サンプルのコピーを用意し、好きな言語で 2 ~ 3 個の小さなスクリプトを記述して、次のフローを処理します。

  1. Safari で、以下のenroll.mobileconfigにリダイレクトする URL に移動します。これにより、iOS で設定アプリが開き、プロファイルが表示されます。
  2. プロファイルを受け入れると、iOS は Safari に戻り、DeviceAttributes 配列を、enroll.mobileconfig で指定された URL に送信します。
  3. POST データには、要求された属性を含む .plist ファイルが含まれます (以下の例を参照)。そのうちの 1 つは神聖な 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>

サンプル .plist iPhone によって指定された URL に POST された

<?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>
于 2013-12-12T14:57:46.803 に答える
73

これが私の研究結果です:

Apple は、iOS 7 以降、すべてのパブリック API から UDID を隠しています。FFFF で始まる UDID は偽の ID です。以前は機能していた「UDID の送信」アプリを使用して、テスト デバイスの UDID を収集することはできなくなりました。(はぁ!)

UDID は、デバイスが (オーガナイザーで) XCode に接続されている場合、およびデバイスが iTunes に接続されている場合に表示されます (ただし、識別子を表示するには、[シリアル番号] をクリックする必要があります。

プロビジョニング プロファイルに追加するデバイスの UDID を取得する必要があり、XCode で自分でそれを行うことができない場合は、手順に従って iTunes からコピー/貼り付けする必要があります。

更新 --サーバーで mobileconfig ファイルをホストすることにより、テスト ユーザーがデバイスの UDID を提供できるようにするスクリプト ベースのアプローチについては、以下の okiharaherbst の回答を参照してください。

于 2013-09-27T00:18:56.417 に答える
15

ユーザーが Linux を実行している場合、ターミナルからこれを使用できます。

lsusb -v 2> /dev/null | grep -e "Apple Inc" -A 2

これにより、接続されている USB デバイスのすべての情報が取得され、次の 2 行を含む「Apple Inc」の行が出力されます。

結果は次のようになります。

iManufacturer           1 Apple Inc.
iProduct                2 iPad
iSerial                 3 7ddf32e17a6ac5ce04a8ecbf782ca509...

これは iOS5 -> iOS7 でうまくいきましたが、iOS4 デバイスでは試していません。

IMO これは、私が見つけたどの Win/Mac/Browser ソリューションよりも高速であり、「ソフトウェア」のインストールは必要ありません。

于 2014-02-03T08:01:40.023 に答える
5

ユーザーがサインアップすると、TestFlight は UDID を抽出できるようです。

https://testflightapp.com

于 2013-11-11T17:24:04.853 に答える
4

iPhone 構成ユーティリティを使用して UDID を読み取り、開発アプリをインストールしています。iOS7でも問題なく動きます

于 2013-10-17T14:36:58.020 に答える
2

testflightapp.comアカウントを作成してもらいます。

これは、ベータ テストに非常に便利です。これには udids が必要だと思います。

アプリへのダウンロード リンク (ページ下部の権限タップにあります) を送信すると、udid がまだ検証されていないことが通知されます。次に、udid を伝えます。彼らはこれをコピーして貼り付けて、あなたにテキストで送信できます。

于 2013-12-05T18:25:02.550 に答える
2

それを処理する良い方法を見つけました: アプリを testFlight.com に追加し、UDID が必要なユーザーにリンクを提供します。「お使いのデバイスの UDID: xxxxxx は登録されていません」というエラー メッセージが表示され、UDID は正しいものになります。

于 2014-01-05T09:16:03.760 に答える
1

このオンライン ツールhttp://www.easy-udid.comを試してください。さまざまな iOS デバイス (iOS 6 および 7) でテストしたところ、問題なく動作しました。開発者のプロファイルに顧客の UDID をすばやく追加するための便利なツール

于 2014-01-20T13:51:36.420 に答える
1

iTunesを使用せずにiPhoneおよびiPadからUDIDを見つける手順

  1. iPhone または iPad で以下のリンクを開きます: - http://get.udid.io/

  2. 緑色のボタンをクリックします - タップして UDID を見つけます

  3. UDID を取得すると表示されます。右上の [INSTALL] ボタンをクリックします。

4 . UDIDが表示されますので、UDIDをコピーしてください。

于 2017-03-20T11:46:59.437 に答える
0

iTunes が唯一の答えのように見えると思いますが、これは非常に残念です。

于 2013-10-07T15:35:22.183 に答える
0

または、 www.my-mo.co.uk/device/deviceinfo.phpで私のソリューションを使用すると、 UDID にアクセスして、選択した人にメールで送信できます。

于 2014-02-17T19:30:34.863 に答える
0

Mac を使用している場合は、[この Mac について] の [システム レポート] から UUID を取得できます。デバイスを接続した状態で、USB セクションを開き、iPhone をクリックします。UUID は「シリアル番号」の下に表示されます

于 2014-11-12T03:27:23.603 に答える
0

diawi.com はうまく機能しました。iPhone をケーブルなどで接続する必要はありません。「マイ デバイス」タブをたどるだけで、プロビジョニング プロファイルをインストールし、UDID を表示して、メールで送信するオプションを追加できます。

于 2016-08-06T11:27:41.110 に答える
-2

デバイスのブラウザでudid.ioを使用してください。または、 iToolsをインストールしてデバイスを接続し、正しい UDID を取得してください。

アダーシュ EM

于 2013-10-09T11:36:57.960 に答える
-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.
于 2013-12-03T09:17:11.797 に答える