.APK 및 .OBB 파일을 여기에 드롭하세요.
하나 이상의 .apk 분할 및 선택적 .obb 확장 파일을 선택하세요.
여러 파일 지원 • XAPK v2 매니페스트.json 자동 생성APK + OBB를 XAPK 컨테이너에 패키징하는 이유는 무엇입니까?
별도의 main.<ver>.<pkg>.obb 자산 아카이브 또는 모듈식 ABI 분할을 포함하는 대규모 Android 빌드, QA 테스트 릴리스 또는 개인 백업을 배포할 때 여러 개의 느슨한 파일을 보내면 사용자가 OBB 폴더를 잘못 배치하게 됩니다. 단일 .xapk 번들로 패키징하면 이 문제가 깔끔하게 해결됩니다.
- 자동 OBB 경로 라우팅: 모든 .obb 파일을 Android/obb/<package_name>/ 내에 배치하고 정확한 install_location: "EXTERNAL_STORAGE" 규칙을 manifest.json에 씁니다.
- 자동 분할 ID 할당: 오픈 소스 설치 프로그램과 XAPK-APK 합병가 모든 모듈을 인식할 수 있도록 base 및 config.* 분할 식별자를 할당합니다.
- OBB 파일 이름에서 패키지 이름을 자동 감지합니다: main.104.com.company.title.obb를 삭제하면 빌더는 자동으로 com.company.title 및 버전 코드 104를 추출합니다.
XAPK 사양 v2 참조 및 APK에서 XAPK/APK로의 변환 가이드
XAPK 컨테이너 사양은 BOM 없이 UTF-8로 인코딩된 필수 루트 수준 manifest.json 파일과 함께 표준 DEFLATE ZIP 프레이밍을 사용합니다. 데스크탑 언패커, ADB 배포 스크립트 및 분할 APK 설치 프로그램 간의 호환성을 보장하려면 XAPK 번들이 다음 구조 규칙을 따라야 합니다.
- 루트 수준 분할 APK(split_apks): 번들 내의 모든 .apk 파일은 ZIP 아카이브의 루트에 저장됩니다. 기본 모듈은 "id": "base"를 전달해야 하며 아키텍처, 밀도 및 로캘 모듈은 "id": "config.<qualifier>"(예: config.arm64_v8a 또는 config.xxhdpi)를 전달해야 합니다.
- 확장 자산 계층 구조(expansions): 각 .obb 확장 blob은 ZIP 트리 내의 Android/obb/<package_name>/<filename>.obb 내부에 저장되며 "install_location": "EXTERNAL_STORAGE" 및 "install_path": "Android/obb/<package_name>/<filename>.obb"를 사용하여 expansions 배열에 선언됩니다.
- 바이트 단위의 정확한 total_size 계산: 설치 프로그램은 manifest.json의 total_size 정수가 모든 패키지된 .apk 및 .obb 파일의 압축되지 않은 바이트 길이의 정확한 합계와 동일한지 확인하므로 장치는 추출 전에 사용 가능한 플래시 저장소를 미리 확인할 수 있습니다. 우리 빌더는 이 정확한 바이트 합계를 자동으로 계산합니다.