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

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

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

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

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

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

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



답변

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

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

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

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

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


답변

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

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


답변

사용자가 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 솔루션보다 빠르며 “소프트웨어”설치가 필요하지 않습니다.


답변

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

https://testflightapp.com


답변

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


답변

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

system_profiler SPUSBDataType

찾다:

Serial Number: xxxx