چرا تغییر نام XAPK. به APK باعث "مشکل در تجزیه بسته" و نحوه رفع "تأیید اعتبار فایل XAPK نشد"
یکی از رایجترین افسانههایی که در انجمنها تکرار میشود این است که میتوانید یک فایل .xapk را به سادگی با تغییر نام پسوند فایل از .xapk به .apk به یک برنامه قابل نصب Android تبدیل کنید. اگر آن را در Android 12، 13، 14 یا 15 امتحان کنید، سیستم بلافاصله با "مشکلی در تجزیه بسته وجود داشت" (یا "برنامه به عنوان بسته نصب نشده به نظر می رسد نامعتبر است" متوقف می شود). در اینجا دلیل دقیق باینری عدم موفقیت تغییر نام وجود دارد - و نحوه رفع آرشیوهایی که "بررسی فایل XAPK ناموفق بود" را راه اندازی می کنند.
1. چرا تغییر نام .xapk به .apk هرگز کار نمی کند
اگرچه هر دو فایل .apk و .xapk از فرمت آرشیو PKZIP در زیر هود استفاده می کنند، PackageParser Android به دنبال سه مورد اجباری در ریشه یک فایل .apk قبل از اینکه حتی اعلان نصب را نمایش دهد، می گردد:
- یک AndroidManifest.xml باینری کامپایل شده در ریشه دقیق آرشیو ZIP.
- بایت کد Dalvik/ART (classes.dex) و یک جدول منبع کامپایل شده (resources.arsc) که روی مرزهای 4 بایتی تراز شده است.
- یک امضای APK Signature Scheme v2/v3 Signing Block یا META-INF/ JAR که هر ورودی را در بایگانی پوشش می دهد.
یک فایل .xapk دارای هیچ کدام از آنهایی است که ریشه دارند. در عوض، ریشه یک .xapk حاوی یک فایل متنی JSON (manifest.json، یک icon.png) و چندین فایل .apk تو در تو (base.apk، config.arm64_v8a.apk، config.xxhdpi.apk) است. هنگامی که نام game.xapk را به game.apk تغییر میدهید، Android ZIP بیرونی را باز میکند، هیچ AndroidManifest.xml را در ریشه نمیبیند و بلافاصله یک خطای تجزیه بسته میاندازد.
2. آیا می توانید به جای آن نام .xapk را به .zip تغییر دهید؟
بله—تغییر نام .xapk به .zip به هر ابزار بایگانی (Windows Explorer، macOS Archive Utility یا ZArchiver) اجازه می دهد تا فایل های داخل را مشاهده کند. با این حال، برای بستههای Split-APK مدرن، استخراج ساده base.apk از ZIP همچنان در Android با INSTALL_FAILED_MISSING_SPLIT ناموفق است، زیرا کتابخانههای CPU (lib/*.so) و نقشههای با DPI بالا در فایلهای جداگانه config.*.apk قرار دارند. برای تبدیل یک تقسیم .xapk به یک .apk منفرد، همه تقسیمها باید ادغام شوند، پرچم isSplitRequired مانیفست باینری باید وصله شود، و بایگانی ادغام شده باید با استفاده از مبدل آنلاین XAPK به APK ما دوباره امضا شود.
3. سه دلیل ریشه ای "تأیید اعتبار فایل XAPK ناموفق بود"
اگر از یک نصبکننده اختصاصی XAPK استفاده میکنید و خطای "بررسی فایل XAPK ناموفق بود" را دریافت میکنید، بررسی قبل از پرواز نصبکننده به یکی از سه دلیل فنی انجام نشد:
- مرورگرهای موبایل دانلود مرورگر کوتاه شده (عدم تطابق total_size): معمولاً هنگام قفل شدن صفحه، دانلودهای بزرگ 1.5 گیگابایتی را حذف می کنند. حتی اگر 99 درصد از فایل دانلود شده باشد، رکورد پایان ZIP دایرکتوری مرکزی (EOCD) یا ورودی نهایی .obb ناقص است.
- Split یا OBB موجود در manifest.json ارجاع شده است: اگر فایل manifest.json "file": "config.arm64_v8a.apk" را در داخل split_apks[] یا "file": "Android/obb/com.example/main.obb" را در expansions[] فهرست کند، و آن مسیر دقیق در داخل ZIP وجود نداشته باشد، اعتبارسنجی فوراً انجام نمیشود.
- نحو JSON خراب در آرشیوهای بسته بندی شده: آرشیوهای .xapk ویرایش دستی اغلب دارای کاماهای انتهایی یا بایت های UTF-8 BOM در manifest.json هستند.
4. چگونه فایل XAPK خود را در چند ثانیه تشخیص داده و تعمیر کنید
به جای حدس زدن اینکه دانلود شما خراب است، این بررسی دو مرحله ای مرورگر را اجرا کنید:
- فایل .xapk خود را در نمایشگر و اعتبارسنجی بایگانی XAPK ما بیندازید. دایرکتوری مرکزی ZIP را به صورت محلی می خواند و هر ورودی اعلام شده در manifest.json را با فایل های واقعی داخل بسته بررسی می کند.
- اگر اعتباردهنده تأیید کرد که base.apk و تقسیمبندیهای معماری شما دست نخورده هستند (حتی اگر manifest.json دارای عدم تطابق ابرداده باشد)، .xapk را مستقیماً در صفحه اصلی XAPK به APK ادغام ما بیندازید تا یک .apk امضاشده مستقل و تمیز ایجاد کنید که از طریق Android و بدون نیاز به نصب PackageZX در Allmanifest.jsonنصب میشود.