Plist 뷰어 (바이너리·XML)
애플 속성 목록(plist)을 바이너리든 XML이든 열어 트리로 보고, JSON이나 XML plist로 변환합니다.
사용법
- .plist나 .mobileconfig 파일을 끌어다 놓거나 XML plist 텍스트를 붙여넣으세요.
- 형식은 자동 감지되며, 바이너리 파일은 객체 개수를 함께 보여줍니다.
- 트리를 읽으세요. 각 행에 키, 타입, 값이 표시됩니다.
- 가공하려면 JSON을, 편집하려면 XML plist를 복사하세요.
- 데이터와 날짜는 문자열로 뭉뚱그리지 않고 타입을 표시합니다.
자세한 설명
펼치기접기
속성 목록은 macOS와 iOS가 거의 모든 것을 저장하는 방식입니다. 앱 환경설정, Info.plist, 구성 프로파일, 백업 매니페스트까지요. 절반은 편집기로 읽을 수 있는 XML이지만, 나머지 절반은 bplist로 시작하는 바이트 덩어리로 열리는 애플의 바이너리 형식입니다.
이 도구는 둘 다 읽습니다. 바이너리는 문자열을 긁어모으는 대신 제대로 디코딩합니다. 파일 끝의 32바이트 트레일러가 오프셋과 참조 정수의 폭, 그리고 객체 테이블의 위치를 알려주고, 모든 값은 그 테이블을 통해 도달합니다. 헤더부터 앞으로 훑어서는 아무것도 읽을 수 없다는 뜻이죠. 1·2·4·8바이트 정수, 실수, 애플 고유 에포크 기준의 날짜, 원시 데이터, UID, 배열, 집합, 딕셔너리가 모두 타입을 유지한 채 나옵니다.
결과는 트리로 보여주고 JSON과 XML plist로도 제공합니다. 편집할 수 없던 바이너리 파일이 편집 가능한 형태가 되는 셈입니다. 파일이 NSKeyedArchiver 아카이브로 판명되면 — UID 참조로 연결된 평평한 객체 테이블로, iOS가 조금이라도 복잡한 것을 저장할 때 쓰는 방식입니다 — 그 사실을 알려줍니다. 내용이 앱이 저장하는 구조와 전혀 달라 보이는 이유가 바로 그것이니까요. 업로드되는 것은 없습니다.
자주 묻는 질문
바이너리 plist와 XML plist의 차이는 뭔가요?
인코딩만 다릅니다. 담는 값은 같고 macOS는 둘을 같은 것으로 다룹니다. 바이너리가 더 작고 빠르게 읽히기 때문에, 문서에는 XML로 설명돼 있어도 기기 안의 파일은 대부분 바이너리입니다.
파일이 의미 없는 숫자와 $로 시작하는 키로만 보입니다.
NSKeyedArchiver 아카이브일 가능성이 큽니다. 객체들을 $objects에 평평하게 나열하고 중첩 대신 UID 참조로 연결하기 때문에, 보이는 구조는 아카이브의 것이지 앱의 것이 아닙니다. $archiver 키가 보이면 이 도구가 표시해 줍니다.
다른 데서는 날짜가 31년씩 어긋납니다.
애플은 1970-01-01이 아니라 2001-01-01부터 초를 셉니다. 978307200초 차이죠. plist의 날짜를 유닉스 타임스탬프로 읽으면 1970년대로 떨어집니다. 여기서는 이 오프셋을 적용해 올바른 날짜가 나옵니다.
바이너리 데이터는 어떻게 되나요?
데이터 타입 그대로 유지하고 길이를 함께 보여줍니다. JSON에는 바이트 문자열이 없으므로 __data_base64 키 아래 base64로 넣고, XML 출력에서는 다시 <data> 요소로 돌아갑니다.
바이너리 plist를 편집하거나 쓸 수도 있나요?
바이너리를 XML로 변환해 주므로, 그것을 편집한 뒤 plutil이나 plist 라이브러리로 되돌릴 수 있습니다. 바이너리 형식으로 쓰는 것은 이 도구의 기능이 아닙니다.
파일이 업로드되나요?
아니요. 브라우저에서 파싱되고 서버로 전송되지 않습니다. 환경설정 파일에는 계정 이름과 경로가 들어 있는 경우가 많아 특히 중요합니다.
관련 도구
TAR 아카이브 검사기
.tar, .tar.gz, .tgz 파일을 풀지 않고 내부 항목을 전부 봅니다. 권한, 소유자, 크기, 시각, 링크 대상까지 표시합니다.
파일
엑셀(XLSX) → CSV · JSON · 마크다운 변환
브라우저에서 .xlsx 통합 문서를 열어 원하는 시트를 CSV·JSON·마크다운 표로 내보냅니다. 파일은 기기를 벗어나지 않습니다.
파일
NumPy .npy / .npz 검사기
.npy·.npz 헤더를 브라우저에서 읽습니다. dtype, shape, 바이트 순서, 필드 배치와 값 미리보기까지. NumPy 설치도 업로드도 필요 없습니다.
개발
PWA Manifest 빌더
Progressive Web App용 유효 manifest.json 빌드 — 이름·아이콘·테마 컬러·디스플레이 모드·스코프·방향 — 매칭 HTML <link> 와 Apple 메타 태그 포함.
개발
MessagePack 디코더
base64나 hex로 된 MessagePack 바이트를 붙여넣으면 타입, 중첩 맵, 바이너리, 타임스탬프까지 브라우저에서 해석합니다.
개발
XML ↔ JSON 컨버터
XML → JSON·JSON → XML 양방향, 전체 속성 지원, 구성 가능 속성 프리픽스·텍스트 키. 브라우저 네이티브 DOMParser가 네임스페이스·CDATA·코멘트 처리.
변환