(iOS 7 출시 이후) PC / Mac에서 iTunes를 사용하지 않고 UDID를 얻을 수있는 방법이 있습니까?


80

저는 회 사용 앱을 개발 중이며 회사의 iOS Dev Center 계정에 iPad를 추가하여 사람들을 "베타"로 천천히 보내는 과정을 거치고 있습니다. 거기에서 로컬 인트라넷 배포를위한 임시 빌드를 수행합니다.

마지막 공연에서 사람들을 "내 UDID 찾기"앱 중 하나로 안내하고 찾은 UDID를 보내달라고 요청했습니다.

iOS 7은이 문제를 차단했습니다. 해당 앱은 모두 사라졌고 아직 가지고있는 경우 UDID와 관련이없는 일부 GUID를 반환합니다.

그래서 제가해야 할 일은이 모든 것을 제 Mac에 연결 한 다음 iTunes에서 UDID를 가져 오는 것입니다. 이는 번거 롭습니다 (하지만 iTunes에서 가져 오는 방법을 설명하는 것보다는 심지어 설치). 그리고 때로는 내 Mac과 동기화하려고 시도하는데, 장치에서 원하지 않는 프로비저닝 프로파일을 설정하는 것 외에 다른 효과가없는 것 같습니다. 그리고 적어도 한 번은 iPad를 가지고 갑자기 iOS 6에서 iOS 7으로 업그레이드하기로 결정했습니다. 이는 연결과 관련이 있는지 확실하지 않습니다 (이 경우 사용자는 업그레이드를 원하지 않았습니다).

그렇다면 iPad에서 UDID를 컴퓨터에 연결하는 것 외에 다른 방법이 있습니까?

명확하게하기 위해 : 앱에서 UDID를 얻으려는 것이 아니라 배포를 위해 개발자 프로필의 장치 목록에 추가 할 UDID를 얻는 가장 빠른 방법을 생각하고 있습니다.


whatsmyudid.com : D 당신은 말할 수 있습니다, AppStore에서 UDID 앱을 다운로드하고 저에게 이메일을 보내십시오. 당신은 다른 선택의 여지가 없어 ..
요르단 몬텔에게

1
@JordanMontel은 멋진 사이트이지만 더 이상 모양 / 느낌과 일치하지 않는 이전 버전의 iTunes를 사용하고 있으며 복사 명령은 Mac을 실행하고 있다고 가정합니다. 그리고 UDID 앱은 iOS 7 이후 더 이상 유효한 UDID를 제공하지 않습니다
Tom Kidd

2
네, iOS 7에서는 앱에서 전송 된 UDID가 FFFF로 시작한다는 것을 기억합니다 ... 따라서 고유 한 솔루션은 iTunes에 장치를 연결하는 것입니다.
Jordan Montel 2013 년

저는 같은 배를 타고 있습니다. 여러 클라이언트를위한 앱을 개발하고 있는데, UDID를 이메일로 보낼 수없는 경우 Apple이 사내 테스트를 위해 장치를 추가 할 것으로 기대하는 방법을 모르겠습니다!
소프트웨어는

2
TestFlight는 구성 프로필을 사용하여 iOS 7 장치에서 어떻게 든이 문제를 해결합니다. 그것이 어떻게 작동하는지 살펴볼 수 있습니다.
Jesse Rusak 2013 년

답변:


74

내 연구 결과는 다음과 같습니다.

Apple은 iOS 7부터 모든 공용 API에서 UDID를 숨겼습니다. FFFF로 시작하는 모든 UDID는 가짜 ID입니다. 이전에 작동했던 "UDID 보내기"앱은 더 이상 테스트 장치의 UDID를 수집하는 데 사용할 수 없습니다. (한숨!)

UDID는 기기가 XCode에 연결되어있을 때 (수첩에서), 기기가 iTunes에 연결되었을 때 표시됩니다 (단, 식별자를 표시하려면 '일련 번호'를 클릭해야합니다.

프로비저닝 프로파일에 추가 할 장치의 UDID를 가져와야하고 XCode에서 직접 할 수없는 경우 iTunes에서 복사 / 붙여 넣기 단계를 안내해야합니다.

업데이트- 테스트 사용자가 서버에서 mobileconfig 파일을 호스팅하여 장치 UDID를 제공 할 수 있도록하는 스크립트 기반 접근 방식은 아래 okiharaherbst의 답변을 참조하십시오.


200
Apple이 개발자를 싫어한다는 느낌을받은 적이 있습니까?
ryan0

15
"iTunes에서 복사 / 붙여 넣기 단계를 안내해야합니다." 이 웹 사이트가 조금 도움이 될 수 있습니다 : whatsmyudid.com
Guillaume Algis

완전히 답입니다. 내가 UDID를 가지고있는 사용자의 절반은 가짜이고, 그 사람들은 내 개발 앱을 설치할 수없는 사람들입니다
bentedder

이 문제에 대해 알고 있다면 사과 문서 링크를 추가하십시오.
Praveenkumar 2014 년

2
값을 마우스 오른쪽 버튼으로 클릭하면 값을 복사 할 수 있습니다 (iTunes의 Windows 버전-Mac 버전은 확실하지 않음)
소프트웨어는

103

iOS 기기의 Safari에서 http://get.udid.io/ 로 이동합니다 . 매력처럼 작동하며 iTunes 나 다른 컴퓨터가 필요하지 않습니다. 설치된 앱도 없습니다.

편집하다:

또한 이 .mobileconfig 인증서가 서버에서 호스팅되도록하려면 .mobileconfig에서 장치 UDID 가져 오기 를 참조하세요.

당신 만의 것을 만드세요:

.mobileconfig 예제의 사본을 서버에서 호스팅하고 다음 흐름을 처리하기 위해 원하는 언어로 2-3 개의 작은 스크립트를 작성합니다.

  1. Safari에서 아래의 enroll.mobileconfig로 리디렉션되는 URL로 이동 합니다. 이렇게하면 iOS가 설정 앱을 열고 프로필을 표시합니다.
  2. 프로필을 수락하면 iOS는 Safari로 다시 전환하고 DeviceAttributes 배열을 URL이 지정된 enroll.mobileconfig에 게시합니다.
  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>

주어진 URL에 iPhone이 게시 한 샘플 .plist

<?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>

1
본인 / 고객이 사용하는 유사한 서비스를 설정하는 것은 몇 번의 클릭만으로 가능합니다.
VH-NZZ

9
이 사이트는 사이트 소유자가 데이터에 액세스 할 수있는 프로필 서비스를 설치하게하므로 사용하지 마십시오.
체크리스트

1
@checklist : 동의하지 않습니다. 두 가지, 하나의 발언과 하나의 코멘트 : 1st . 위의 편집 내용을 참조하십시오. 개인 정보 보호 문제. 2 위 . iPhone이 없으면 UUID가 무슨 소용이 있습니까? 비고 : 프로필 은 '사이트 소유자가 데이터에 액세스 할 수 있도록'하지 않으며 설치된 상태로 유지되지도 않습니다. 자세히 설명해 주시겠습니까? 설명 : UUID를 검색하는 더 간단한 방법이 있다면 듣고 있습니다. UUID가 이메일로주고받는 것이 걱정된다면 SSL을 통해 자체 서비스를 호스팅하세요. 참고로 , iPhone을 iTunes에 연결하면 데이터가 Apple (및 가능하면 N $ @)로 전송됩니다.
VH-NZZ 2014

4
안녕. 데이터를 Apple로 보내는 것과 알 수없는 웹 사이트로 보내는 것에는 차이가 있습니다. 데이터 가로 채기를 허용하기 때문에 장치에 프로필을 설치하는 것에 대한 수많은 경고가 있습니다. 나는 그것을하지 않을 것입니다.
체크리스트

3
@checklist : 인터넷에 게시하는 내용에 대해 정당한 우려가 있습니다. 다시 말하지만, 그 편의 서비스를 사용하는 것이 불편하다면 그것은 FINE입니다. 답변 의 EDIT 부분은 자신의 것을 만드는 방법을 알려주므로 단순성을 유지하면서 걱정할 필요가 없습니다. HTH.
VH-NZZ 2014

17

이것이 도움이되기를 바랍니다.

  1. iPhone을 MAC에 연결 (Windows에서는 시도하지 않았습니다)
  2. 왼쪽 상단 모서리에있는 Apple 로고 를 클릭 한 다음 About This Mac을 선택합니다.
  3. 에서 개요 탭> 시스템 보고서
  4. 왼쪽 열의 하드웨어 > USB >
  5. 그런 다음 오른쪽 창에서 iPhone을 선택하십시오.
  6. 하단 창-> " 일련 번호 "

-> 그리고 그 일련 번호는 UDID입니다.


자, 그것이 내가 StackOverflow를 좋아하는 이유입니다. :)이 멋진 솔루션에 감사드립니다.
Jean Le Moignan 2016 년

1
일련 번호를 클릭하면 UDID로 변경됩니다
Vishal

14

사용자가 Linux를 실행하는 경우 터미널에서 사용할 수 있습니다.

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

이것은 연결된 USB 장치에 대한 모든 정보를 가져오고 다음 두 줄을 포함하여 "Apple Inc"로 줄을 인쇄합니다.

결과는 다음과 같습니다.

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

이것은 iOS5-> iOS7에서 저에게 효과적이지만 iOS4 장치에서는 시도하지 않았습니다.

IMO는 내가 찾은 Win / Mac / Browser 솔루션보다 빠르며 "소프트웨어"설치가 필요하지 않습니다.


1
"iSerial"== UDID를 확인할 수 있습니까?
소프트웨어는

나는 그것을 Apple의 개발 센터에서 UDID로 사용하여 개발 프로비저닝 프로파일을 잘 만들었습니다.

1
Win에서 이와 같은 작업을 수행하는 방법은 무엇입니까?
Nicolas Barbulesco 2014

5

TestFlight는 사용자가 등록하면 UDID를 추출 할 수있는 것 같습니다.

https://testflightapp.com


1
두 번째입니다. 현재로서는 TestFlight가 유일한 방법입니다.
Blazor

우리가 뭘해야 하죠 ? iOS 7.1에서 작동합니까? TestFlight가 UDID를 얻기 위해 더 이상 작동하지 않는다는 것을 읽었습니다.
Nicolas Barbulesco 2014

4

iPhone 구성 유틸리티를 사용하여 UDID를 읽고 개발 앱을 설치했습니다. iOS7에서 여전히 잘 작동합니다.


1
원래 질문은 아이튠즈를 사용하지 않는다고 언급했지만 그들은 "기기를 손에 들고 있지 않고, 또는 사용자가 애플 소프트웨어를 설치하도록 강요하지 않고 UDID를 얻을 수있는 방법이 있습니까?"라고 질문하고 있습니다. 이 대답은 그 시험에 실패
진화 소프트웨어

이 솔루션이 마음에 듭니다. Windows에서 관리가 필요합니까?
Nicolas Barbulesco 2014

아아, Windows에 iPhone 구성 유틸리티 3.6.2를 설치하려면 Windows 관리 권한이 필요합니다. 당신은 PC의 관리해야하는 이유 세트 아이폰까지 ... 도구를 사용 안 함
니콜라스 Barbulesco

3

플러그를 꽂고 명령 줄에서 다음을 실행합니다.

system_profiler SPUSBDataType

찾다:

Serial Number: xxxx

1
멋있는! 이 솔루션을 좋아합니다. 감사합니다. 쉽게 스캔 할 수있는 목록을 생성하기 위해 끝에 awk 를 추가했습니다 .system_profiler SPUSBDataType | awk '/:$/{sub(/^ */,"");name=$0}/Serial Number:/{id=$3;print name,id}'
Todd Lehman 2014

좋은. 그러나이 답변에는 더 자세한 정보가 필요합니다. 어디에 연결 하시겠습니까? 나는 몇 가지 아이디어를 가지고 ... ;-)
니콜라스 Barbulesco

2

testflightapp.com 계정을 만들 도록 합니다.

이것은 베타 테스트에 매우 유용합니다. udid가 필요한 것 같습니다.

앱에 대한 다운로드 링크 (페이지 하단의 권한 탭에 있음)를 보내면 해당 udid가 아직 확인되지 않았다는 메시지가 표시됩니다. 그런 다음 udid를 알려줍니다! 그들은 이것을 복사하여 붙여넣고 당신에게 텍스트를 보낼 수 있습니다.


2

이를 처리하는 좋은 방법을 찾았습니다. testFlight.com에 앱을 추가하고 UDID를 원하는 사용자에게 링크를 제공하세요. "장치 UDID : xxxxxx가 등록되지 않았습니다"라는 오류 메시지가 표시되고 UDID가 올바른 것입니다.


1

이 온라인 도구 http://www.easy-udid.com을 사용해보십시오 . 다양한 iOS 장치 (iOS 6 및 7)에서 테스트했으며 제대로 작동합니다. 개발자 프로필에 고객의 UDID를 빠르게 추가 할 수있는 유용한 도구


2
그러나이 사이트는 "프로필"을 설치하도록 요청합니다. 그리고 iOS는 이렇게하면 내 설정이 수정 될 것이라고 경고합니다. 나는 그것을 좋아하지 않는다.
Nicolas Barbulesco 2014

1

테스트 플라이트를 사용하여 테스터로부터 UDID를 얻되 신뢰할 수없는 소스 (예 : http://get.udid.io/)를 사용하지 마십시오.

1. 시험 비행 웹 페이지에서 이메일로 테스터를 초대 할 수 있습니다. 테스터는 이메일에서 링크를 열고 테스트 비행에서 프로필을 설치합니다. 따라서 개발자는 시험 비행 웹 페이지에서 UDID를 얻을 수 있습니다. 2. Apple 프로비저닝 포털에서 해당 UDID를 추가합니다.

(참조 : http://help.testflightapp.com/customer/portal/articles/829537-how-does-it-work- )

이 프로세스는 테스터가 UDID를 얻기 위해 Mac / PC를 사용할 필요가 없습니다 (더 편리함). 그리고 시험 비행은 믿을 수있는 회사라고 생각합니다 (UDID를이 회사에 전달해도 걱정하지 마세요).

이 방법을 테스트했으며 iOS 8에서 작동합니다.


1
유해한 udid.io입니까?
Ivanka Todorova 2015

1

iTunes를 사용하지 않고 IPhone 및 iPad에서 UDID를 찾는 단계

  1. iPhone 또는 iPad에서 아래 링크 열기 :-http: //get.udid.io/

  2. 버튼 녹색을 클릭하십시오-UDID를 찾으려면 누르십시오.

  3. 당신의 UDID가 나타날 것입니다, 오른쪽 상단의 INSTALL 버튼을 클릭하십시오

4. UDID가 나타납니다. UDID를 복사합니다.


0

나는 아이튠즈가 유일한 해답이라고 생각한다. 매우 불행한 일이다.


답을 읽었습니까? 당신은 시스템 정보, 아이폰 구성 유틸리티는 사용할 수 get.udid.io의 웹 페이지 및 주최자, testflight .....
라이트

0

또는 여기 www.my-mo.co.uk/device/deviceinfo.php에서 내 솔루션을 사용 하면 UDID에 액세스하여 선택한 사람에게 이메일을 보낼 수 있습니다.


1
미래의 사람들 에게이 솔루션은 iOS 7.1에서 작동합니다.
Nicolas Barbulesco 2014

1
물론이 수행하거나 동일한 기능 www.my-udid.com에 액세스하려면이 도메인을 사용할 수 있습니다
알렉스 맥 피어슨이

너무 나쁘다. 이 솔루션은 더 이상 작동하지 않습니다. 주소에서 404, not found 오류가 발생합니다.
Nicolas Barbulesco 2015 년

0

Mac을 사용하는 경우 "이 Mac 정보"에서 사용할 수있는 "시스템 보고서"에서 UUID를 가져올 수 있습니다. 장치가 연결된 상태에서 USB 섹션을 열고 iPhone을 클릭하십시오. UUID는 "일련 번호"아래에 나타납니다.


0

diawi.com이 저를 위해 일했습니다. iPhone을 케이블 등으로 연결할 필요가 없습니다. "내 장치"탭을 따라 가면 프로비저닝 프로파일을 설치 한 다음 UDID를 표시하고 이메일로 보내는 옵션을 추가 할 수 있습니다.


-3

장치 브라우저에서 udid.io 를 사용 하거나 iTools를 설치 하고 장치를 연결하여 올바른 UDID를 얻으십시오.

Adarsh ​​EM


2
"우리는 당신이 테스터이거나 모바일 앱 개발자이거나 그들과 같은 종류 이길 바랍니다." 음, 불쾌하지는 않지만 그 사이트는 다소 어둡게 보이며 서명되지 않은 프로비저닝 프로파일은 정확히 위안이 아닙니다. 아니에요 어떻게 말할 것도없고 그들은 UDID지고 있는지 방법
톰 키드

탈옥되지 않은 경우 장치에서 실제 UDID를 검색하는 사이트 또는 도구에 대해 더 이상 승인 된 메커니즘이 없습니다. 나는 그렇지 않다고 말하는 해결책은 피할 것입니다
소프트웨어는

@Schnapple이 사이트는 UDID를 검색하기 위해 MDM에서 일반적으로 사용되는 (TestFlight와 같은 서비스에서도 사용되는) 구성 프로필을 활용합니다. 서명되지 않은 부분에 대해서는 동의하지만 그 외에는 문제가되지 않습니다. 앱 내에서가 아니라 iOS 기기에서도 UDID를 얻을 수 있습니다 . UDID는 여전히 MDM에서 광범위하게 사용됩니다.
Calrion 2013-10-21

1
MDM (모바일 장치 관리) 시스템에 대해 조사했습니다. API 문서는 엔터프라이즈 개발자에게만 공개되지만 UDID를 검색하는 메커니즘을 지원하는 것으로보고되었으므로 이전 진술 ( "기기에서 실제 UDID를 검색하는 사이트 또는 도구에 대해 더 이상 승인 된 메커니즘이 없습니다") 잘못되었습니다.
소프트웨어

iTools? Mac OS 9가 돌아 왔습니다. :-)
Nicolas Barbulesco 2014

-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를 얻을 수있는 방법을 찾고 있습니다. 점점 더 많은 사람들이 iOS 기기를 컴퓨터에 직접 동기화하지 않습니다. 기기 자체를 업데이트하고 iCloud를 통해 설정을 동기화 할 수 있으며 때로는 iTunes에 동기화하면 모든 것이 엉망이됩니다. 대답은 "아니오"로 나타납니다
톰 키드에게

iPhone에 모두 입력합니까? ^^ 어디? 내 UDID를 제공합니까? 이 대답은 질문에 대한 대답이 아니라고 생각합니다. iPhone의 UDID를 어떻게 얻습니까?
Nicolas Barbulesco 2014 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.