2013-08-16 3 views
10

Apple이 앱의 고유 장치 식별자를 더 이상 사용하지 않으므로 MDM에 등록 된 기기에서 엔터프라이즈 앱을 다시 연결하는 가장 좋은 방법은 무엇입니까?iOS 용 고유 식별자 MDM

MDM 프로토콜 참조 문서에서 체크인 등록을 위해 UDID를 계속 사용하고 있습니다.

새 identifierForVendor는 체크인의 UDID와 같지 않으므로 사용할 수 없습니다.

  1. 장치가 체크인 할 MDM 서버에 토큰 및 장치 UDID와 (애플이 API를 제거하는 일을)
  2. 장치가 보내드립니다, 난 내 MDM 솔루션을 구현하는 방법을 나 업데이트 할 수 있도록 기기 정보를 MDM 서버 (Wi-Fi MAC 주소, 일련 번호, OS 버전 및 기타 정보)
  3. RESTful API를 통해 MDM 서버와 통신 할 클라이언트 앱이 있습니다. (이전에는 키 식별자로 UDID를 사용하고있었습니다)

MAC 주소를 사용하려고했지만 최신 iOS 7에서는 시스템이 항상 02 : 00 : 00 : 00 : 00 : 00 값을 반환합니다.

또한 기기 일련 번호를 가져올 수 없습니다.

내 질문에 다시, 우리는이 장치에있는이 응용 프로그램이 (3)에서 서버에있는이 MDM 등록에 속한다는 것을 어떻게 알 수 있습니까? 이제 앱에 체크 인 프로세스와 관련된 모든 공통 키가 없습니다. 서버는 어떤 장치가 어떤 장치인지 어떻게 알 수 있습니까?

감사합니다.

+0

문제점의 해결책을 찾으셨습니까? 내 것은 거의 동일합니다. – noircc

+0

유일한 해결책은 identifierForVendor를 사용하고 키 체인에 저장하여 사용자가 엔터프라이즈 응용 프로그램을 다시 설치 한 경우에도 identifierForVendor가 유지되도록하는 것입니다. – adiman

+0

Bump for answer, 동일한 문제가 발생했으나 아직 해결 방법을 찾지 못했습니다. – sm0ke21

답변

5

가장 좋은 방법은 iOS 7의 새로운 Managed Apps 구성 기능을 사용하는 것입니다. MDM에서 API 키와 같은 것을 앱에 푸시 다운시킬 수 있습니다. 그런 다음 앱에서 해당 키를 MDM 서버 또는 다른 웹 서비스로 다시 보냅니다.

설정을 앱으로 푸시하면 다음과 같은 방법으로 API 키를 가져올 수 있습니다. 주류 MDM 솔루션의 대부분은 이미 최신 버전에서 이러한 유형의 기능을 지원합니다.

NSDictionary *config = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"com.apple.configuration.managed"]; 
NSString *apiKey = config[@"kAPIKey"]; 

if (apiKey) { 
    //We got an API key and we can use it 
} else { 
    //We didn't get an API key...something has gone wrong 
} 
0

나는이 자료를 몇 달 전에 읽었을 것이다. http://www.doubleencore.com/2013/04/unique-identifiers/

거기에서 나는 잘 서비스 한 CFUUID 방법을 사용했습니다. 구체적으로 ID 방식에 대한 기반으로 MAC을 방해하기 위해 MAC을 조회 할 때

NSString *uniqueID = [NSString stringWithFormat:@"%@", CFUUIDCreateString(NULL, CFUUIDCreate(NULL))];

+1

문제는 MDM 프로토콜이 페이로드에 CFUUID에 대한 옵션 요청을 가지고 있지 않다는 것입니다. MDM은 UDID 및 기타 하드웨어 정보 만 전송합니다. 그래서, CFUUID를 MDM 서버에 보낸 것과 연관시킬 수 없습니다. – adiman

0

는 아이폰 OS 7, 애플은 이제 항상 고정 된 값을 반환합니다. 이제는 [UIDevice identifierForVendor]를 사용하거나 설치 당 UUID를 만들어야합니다.

+0

[UIDevice identifierForVendor]가 MDM 페이로드 별 장치 UDID와 일치하지 않습니다. 그게 문제 야. – adiman

+0

내 앱에서도 똑같은 문제에 직면 해있다. 또한 사용자가 자신의 장치에서 OS를 업데이트 할 때 일어난 일이 하나의 문제 일 것입니다. – Developer

+0

그래서 우리의 응용 프로그램에서 푸시 알림을 사용하는 경우 사용자 장치 토큰 (사용자 토큰)이 더 좋은 옵션이라고 생각합니다. – Developer

0

[UIDevice uniqueIdentifier]은 iOS 6.0에서 [[UIDevice identifierForVendor] UUIDString]으로 대체되었습니다.

2

그러나 lidsinker의 대답은 사실이다, 나를 이렇게이 찾고있다 몇몇 다른 사람 도움이 될 수 있습니다 그것에 집중하자.

엔터프라이즈 앱을 만들 수 있으며 MDM을 통해 설치할 수 있습니다. 장치를 등록하고 나면 MDM은 엔터프라이즈 앱을 장치에 설치할 수 있습니다. MDM은 NSUserDefault에서 기본 구성을 설정할 수도 있습니다.

위의 설명처럼 앱을 읽을 때마다 lidsinker 님의 답변에서 읽을 수 있습니다.

Apple에서 예제를 제공합니다. https://developer.apple.com/library/content/samplecode/sc2279/Introduction/Intro.html

+0

이 접근법은 앱이 등록 된 기기에서만 실행되도록 보장 할 수 있습니까? 누군가가 등록 된 기기에서 앱을 추출하여 등록되지 않은 기기에 앱을 설치할 수 있다고 가정합니다. –