확인하려는 빌드 단계 선택
소스의 SDK 값은 Gradle이 덮어쓸 수 있고 라이브러리가 권한을 추가할 수도 있습니다. 배포 검토에는 최종 매니페스트를 준비하세요. @string/app_name이나 자리표시자가 그대로 보인다면 실제 값은 별도의 리소스와 빌드 설정을 확인해야 합니다.
Android 개발 도구
텍스트 XML을 붙여 넣으면 350ms 후 분석합니다. 자동 모드를 끄면 버튼이나 Ctrl/Cmd+Enter로 실행할 수 있습니다.
텍스트 형식의 AndroidManifest.xml을 붙여 넣거나 예제를 불러오세요.
XML은 현재 브라우저 탭에서 처리되며 업로드되지 않습니다.
텍스트 형식의 AndroidManifest.xml을 붙여 넣거나 예제를 불러오세요.
앱이 설치되지 않거나 예상하지 못한 권한이 나타날 때는 긴 설정 파일에서 관련 선언을 찾아야 합니다. AndroidManifest 보기는 권한과 구성요소를 분류하고 인텐트 필터가 어느 구성요소에 속하는지 보여 줍니다. 항목마다 원본 줄 번호가 있어 XML로 돌아가 확인하기도 쉽습니다.
소스의 설정을 살피려면 해당 파일을, 배포 결과를 점검하려면 병합되었거나 디코딩된 매니페스트를 사용하세요. 매니페스트 분석 결과는 입력에 들어 있는 선언만 설명합니다. Gradle 설정이나 리소스 파일이 필요한 값까지 추측해서 채우지는 않습니다.
AndroidManifest 보기는 uses-permission과 permission을 다른 종류로 정리합니다. 한 액티비티 안에 인텐트 필터가 두 개 있으면 각각의 action, category, data를 따로 유지합니다. 실행 아이콘과 웹 링크를 처리하는 조건이 섞이지 않아 구성요소가 제공하는 진입점을 읽기 편합니다.
대상 SDK를 모르는 상태에서 exported 누락을 확정 오류로 판단하면 오해가 생깁니다. 숫자로 된 대상 값이 조건을 만족하는지 구분하고 원본 줄을 표시합니다. debuggable이 명시적으로 true인 경우에는 배포 설정 검토를 권하지만, 진단이 없다는 이유로 안전성을 보장하지 않습니다.
소스의 SDK 값은 Gradle이 덮어쓸 수 있고 라이브러리가 권한을 추가할 수도 있습니다. 배포 검토에는 최종 매니페스트를 준비하세요. @string/app_name이나 자리표시자가 그대로 보인다면 실제 값은 별도의 리소스와 빌드 설정을 확인해야 합니다.
입력이나 들여쓰기가 바뀌면 350ms 후 자동 분석합니다. 자동 모드를 끄면 Ctrl/Cmd+Enter로 직접 실행할 수 있습니다. 오래된 결과는 복사와 다운로드가 비활성화됩니다. 요약, XML, JSON 사이의 보기 변경은 입력이나 분석 결과를 바꾸지 않습니다.
요약 보기에서 복사하면 JSON 보기와 같은 전체 보고서가 복사됩니다. 화면의 첫 50개 항목으로 제한되지 않습니다. XML 보기에서는 정리된 XML을 복사합니다. 예제 적용과 비우기는 문자 수가 있는 미리보기를 거치며 한 번 되돌리면 이전 입력과 결과를 함께 복원합니다.
manifest, uses-sdk, application의 속성을 함께 살펴봅니다. 없는 값은 없는 상태로, 리소스 참조는 참조 문자열로 유지합니다. .MainActivity 같은 상대 이름은 빌드 namespace에 따라 달라지므로 package를 이용해 완전한 클래스 이름으로 바꾸지 않습니다.
uses-permission, uses-permission-sdk-23, permission을 구분하고 maxSdkVersion과 protectionLevel 같은 속성을 보존합니다. application 바로 아래의 activity, activity-alias, service, receiver, provider를 추출합니다. 반복된 선언도 삭제하거나 합치지 않습니다.
application 수, 이름이 빠진 권한과 구성요소, 최소 SDK가 대상 SDK보다 큰 경우, action 없는 필터, 잘못된 android 네임스페이스를 확인합니다. 대상 SDK가 31 이상인 숫자라면 필터가 있는 액티비티, 별칭, 서비스, 리시버의 exported 누락을 검사합니다.
직접 텍스트가 없는 컨테이너에 2칸 또는 4칸 들여쓰기를 추가합니다. 기존 공백, 주석, 혼합 텍스트는 유지됩니다. 요약은 분류마다 50개씩 더 표시할 수 있고 JSON에는 전체 속성, 줄 번호, 필터의 소속과 진단을 담습니다.
APK의 AndroidManifest.xml은 보통 일반 텍스트가 아닌 바이너리 AXML입니다. Android Studio의 APK Analyzer 또는 apkanalyzer manifest print로 읽을 수 있는 XML을 얻은 뒤 붙여 넣으세요. APK를 ZIP으로 바꾸어 압축을 풀어도 바이너리 내용이 텍스트로 바뀌지는 않습니다.
Android 12 이상을 대상으로 하는 앱에서 인텐트 필터가 있는 액티비티, 서비스, 리시버는 exported를 명시해야 합니다. 이 도구는 액티비티 별칭도 확인합니다. 입력된 대상 SDK가 31 이상의 숫자일 때 누락 오류를 표시하며 대상이 불명확하면 조건 안내만 제공합니다.
uses-permission은 기존 권한으로 보호된 기능에 접근할 것을 요청합니다. permission은 구성요소나 작업을 보호할 권한 자체를 정의합니다. 목록에서 두 종류를 구분하지만, 둘 중 어느 것도 사용자가 기기에서 실제 허용한 상태를 뜻하지는 않습니다.
라이브러리나 다른 소스 세트가 병합 과정에서 권한을 추가할 수 있습니다. 이 페이지는 현재 문서의 선언만 읽으며 병합된 파일 하나로 각 항목의 출처를 재구성하지 않습니다. Android Studio의 Merged Manifest 보기와 병합 보고서에서 기여한 파일을 확인하세요.
minSdkVersion은 설치에 필요한 최소 API 수준이고 targetSdkVersion은 앱이 대상으로 삼는 플랫폼 동작을 결정합니다. 여기서는 원래 선언 값을 표시합니다. Gradle이 값을 제공하거나 덮어쓸 수 있으므로 배포 전 최종 빌드와 기기 동작을 확인해야 합니다.
선언이나 위치가 잘못 표시되나요?
AndroidManifest 보기 예제에서 권한 요청과 권한 정의의 차이를 보고, exported 누락 진단의 줄 번호를 따라 구성요소로 돌아가세요.