iOS / Android Dev Tools

프로비저닝 프로파일 확인내부 XML 읽기

로컬 파일을 선택하거나 합성 예제를 불러오세요. 분석한 뒤 요약, 권한, 필드 트리와 XML을 확인할 수 있습니다.

프로비저닝 프로파일 확인

프로파일 파일

.mobileprovision 또는 .provisionprofile 파일 하나를 놓으세요. 최대 5 MiB입니다.

선택한 파일 없음

결과

현재 탭에서만 읽습니다. 도구는 파일을 업로드하거나 저장하지 않습니다.

옵션

알려진 기기 문자열을 치환하고 바이너리 데이터를 비웁니다. 팀과 앱 등 메타데이터는 남습니다. 변경 후 다시 분석하세요.

파일을 선택한 뒤 분석하세요.

분석은 서명, 인증서, 폐기 여부나 설치 가능 여부를 검증하지 않습니다.

내보내기는 서명 없는 XML 사본이며 설치 가능한 프로파일이 아닙니다.

프로비저닝 프로파일 확인 도구는 테스트 기기에 설치가 안 되거나 같은 이름의 파일들이 서로 다른 팀과 날짜를 가리킬 때 유용합니다. 다운로드한 최신 파일만 보지 말고 실제 앱에 포함된 파일을 먼저 꺼내 비교해 보세요.

CMS 구조를 따라 내장 XML을 읽으므로 임의의 파일에 섞인 XML 조각을 결과로 채택하지 않습니다. 최신 시스템은 DER-Encoded-Profile을 기준으로 삼을 수 있습니다. 이 페이지는 외부의 읽기 쉬운 정보를 살펴보는 진단용 보기입니다.

프로비저닝 프로파일 확인 도구를 쓰는 이유

요약에서 원래 필드로 이동

프로비저닝 프로파일 확인 화면은 팀, 앱 식별자와 만료 날짜를 모아 보여 주고 원래 키의 경로도 남깁니다. Entitlements를 별도로 읽으면 배열과 불리언을 단순한 문자열로 오해하지 않고 프로파일 내용을 확인할 수 있습니다.

프로파일 컨테이너가 열리며 식별 정보, 달력, 권한으로 나뉜 필드 트리가 나타나는 그림.

표시와 내보내기에 같은 마스킹 적용

기기 UDID는 기본으로 가려지고 다른 문자열에 반복된 값도 바뀝니다. 바이너리에 식별자 사본이 들어 있을 수 있어 data 내용도 비웁니다. 팀과 앱 메타데이터는 남으므로 익명화된 파일이라고 볼 수는 없습니다.

화면과 저장 문서의 기기 행에만 마스크가 씌워지고 다른 정보는 남아 있는 그림.

빌드에 들어간 파일부터 확인하기

01

실제 파일과 합성 예제 구분

앱 번들에서 embedded.mobileprovision을 꺼내 비교하세요. 예제는 서명자가 없는 합성 CMS로, 보기 기능을 시험하기 위한 데이터입니다. Apple이 발급한 설치 가능한 프로파일이 아닙니다.

02

옵션을 바꾸면 다시 분석

마스킹 옵션을 바꾸면 이전 결과를 지우고 내보내기를 비활성화합니다. 분석 버튼이나 Ctrl/Cmd + Enter로 다시 실행하세요. 요약과 트리 탭을 바꾸는 동작은 분석 내용을 바꾸지 않습니다.

03

필요한 가지부터 펼치기

딕셔너리나 배열 경로를 누르면 하위 항목을 접을 수 있습니다. 트리는 한 번에 50행을 추가하지만 저장은 현재 XML 전체를 포함합니다. 지우기와 파일 교체는 미리 본 뒤 적용하며 한 번 되돌릴 수 있습니다.

실패 원인을 필드 단위로 좁히기

팀과 앱 식별 정보

Name, UUID, TeamName과 TeamIdentifier를 함께 표시합니다. Bundle ID는 application-identifier의 첫 접두사 부분을 제거해 도출하며 macOS의 대체 키도 읽습니다. 와일드카드는 보존하고 누락된 값은 임의로 채우지 않습니다.

타입을 유지하는 권한 보기

Entitlements 딕셔너리에 전용 보기가 있습니다. 배열, 딕셔너리, 불리언, 정수, 날짜와 data를 구분합니다. 이는 프로파일이 허용한 범위이며 앱의 실제 코드 서명에 들어 있는 권한과 같다는 뜻은 아닙니다. 두 목록의 일치도 검증하지 않습니다.

비교한 시각이 있는 날짜

CreationDate와 ExpirationDate는 UTC 값으로 표시하며 분석 시 브라우저 시계와 비교합니다. 만료됨, 아직 만료되지 않음, 알 수 없음을 구분합니다. 컴퓨터 시간이 틀리면 비교도 달라질 수 있고 미래 날짜는 서명 유효성의 증거가 아닙니다.

읽을 수 있는 XML 추출

SignedData 구조에서 plist를 꺼내 키 순서와 값의 타입을 유지해 저장합니다. 기본 마스킹은 식별자 문자열을 바꾸고 모든 data 요소를 비웁니다. 원본 값 전체가 필요하면 옵션을 끄고 파일을 다시 분석하세요.

읽기 결과가 보장하는 범위

서명과 설치를 검증하지 않음
CMS 서명, 인증서 체인, 폐기 여부, Apple의 신뢰 판단과 기기 설치 가능 여부는 확인하지 않습니다. 서명자 항목이 없는 컨테이너는 따로 안내합니다. 분석 성공은 지원하는 구조와 XML을 읽었다는 뜻입니다.
내부 DER의 의미는 해석하지 않음
최신 시스템에서 기준으로 쓰는 DER-Encoded-Profile의 내부 의미나 XML과의 일치 여부를 검사하지 않습니다. 알 수 없는 XML 필드는 원래 값을 보여 주되 역할이나 배포 유형을 추측해서 표시하지 않습니다.
지원하는 입력이 정해져 있음
내장 UTF-8 XML plist가 있는 바이너리 CMS SignedData 파일 하나를 읽습니다. 정해진 길이 및 부정 길이 BER과 구성형 옥텟 문자열을 지원합니다. 단독 XML, 바이너리 plist, 분리 콘텐츠, 암호화 CMS, IPA, P12와 URL 입력은 지원하지 않습니다.
마스킹은 익명화가 아님
ProvisionedDevices의 식별자와 문자열 값 또는 키에 반복된 같은 내용을 치환하고 모든 바이너리 데이터를 비웁니다. 이름, 팀, Bundle ID와 다른 메타데이터는 남습니다. 공유하기 전 직접 확인하고 원래 값이 꼭 필요할 때 마스킹을 끄세요.
크기 제한과 서명 없는 출력
입력은 5 MiB, 각 파서는 10000노드와 64단계, 생성 XML은 10 MiB로 제한합니다. 중복 키나 잘못된 타입 값은 거부합니다. 저장한 plist는 CMS 서명 봉투를 제거한 사본으로 프로파일을 갱신하거나 서명하거나 설치할 수 없습니다.

프로비저닝 프로파일 확인 질문

mobileprovision 파일을 어떻게 열어 보나요?

파일을 선택하고 분석을 누르세요. CMS 구조를 확인한 뒤 내부 XML plist를 읽습니다. 텍스트 편집기에서 일부 문장이 보여도 그 파일 전체가 지원하는 CMS 구조라는 뜻은 아닙니다.

프로파일에 포함된 기기 UDID를 확인할 수 있나요?

전체 필드 트리에서 ProvisionedDevices를 펼치세요. 기본값은 기기 수만 유지하고 식별자는 가립니다. 실제 값을 확인하려면 마스킹을 끄고 다시 분석하세요. 목록이 없다고 모든 기기에서 설치할 수 있다고 판단하지 않습니다.

프로파일의 만료 날짜는 어떻게 확인하나요?

요약의 ExpirationDate와 비교 시각을 확인하면 기록된 기한이 지났는지 알 수 있습니다. 인증서와 서명을 Apple이 현재 수용하는지는 별개의 문제입니다. 신뢰 여부는 플랫폼의 서명 도구로 검증해야 합니다.

IPA를 만들 때 사용한 프로파일은 어디에서 찾나요?

개발용 또는 Ad Hoc IPA를 직접 압축 해제한 뒤 Payload 안의 앱에서 embedded.mobileprovision을 찾으세요. 이 페이지는 IPA 압축을 풀지 않습니다. App Store에서 배포한 앱에는 해당 파일이 없을 수 있습니다.

프로파일의 만료 날짜를 변경할 수 있나요?

내보낸 XML의 날짜를 바꿔도 Apple이 서명한 파일의 기한이 늘어나지 않습니다. 이 사본에는 CMS 서명이 없습니다. 개발자 계정이나 Xcode에서 필요한 프로파일을 새로 생성하고 새 파일을 사용해 앱을 빌드하세요.

파일 읽기에 빠진 설명이 있나요?

필드의 근거로 문제 좁히기

프로비저닝 프로파일 확인 도구에서 빌드에 쓰인 팀, 기기 목록과 허용 권한을 정리하세요. XML 사본은 진단 기록으로 쓰고 신뢰나 서명에 대한 최종 판단은 Apple 도구로 확인하세요.