[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/android/install_parse_failed_no_certificates":3,"mdc-gn1fbk-key":779,"mdc-4kwbdz-key":789,"mdc--5zgm8m-key":797,"mdc-rfe7e5-key":805,"mdc-hg8fa8-key":830,"mdc-vupkm6-key":838,"mdc-mb8qez-key":846,"related-/errors/android/INSTALL_PARSE_FAILED_MANIFEST_MALFORMED,/errors/android/INSTALL_FAILED_INSUFFICIENT_STORAGE,/guides/android/how-to-sign-apk":854},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":718,"code":27,"createdAt":719,"description":720,"difficulty":721,"draft":722,"estimatedTime":723,"extension":724,"faq":725,"howToSteps":738,"howToTotalTime":748,"image":718,"keywords":749,"locale":757,"meta":758,"navigation":319,"path":759,"platform":760,"related":761,"section":765,"seo":766,"severity":767,"stem":768,"summary":769,"tags":770,"twitterCreator":718,"twitterSite":718,"type":777,"updatedAt":719,"__hash__":778},"content_ru/errors/android/INSTALL_PARSE_FAILED_NO_CERTIFICATES.md","Исправляем INSTALL_PARSE_FAILED_NO_CERTIFICATES в Android",[7,8,9,10],"Android 8.0+","Android Studio Hedgehog 2023+","Gradle 8.0+","apksigner 30.0+","FixPedia Team",{"type":13,"value":14,"toc":708},"minimark",[15,20,29,39,42,46,69,73,77,80,83,110,117,187,190,206,210,213,224,382,385,401,405,415,418,461,464,483,486,499,502,506,509,515,600,602,650,653,677,681,704],[16,17,19],"h2",{"id":18},"что-означает-ошибка-install_parse_failed_no_certificates","Что означает ошибка INSTALL_PARSE_FAILED_NO_CERTIFICATES",[21,22,23,24,28],"p",{},"Ошибка ",[25,26,27],"code",{},"INSTALL_PARSE_FAILED_NO_CERTIFICATES"," появляется при попытке установить APK на устройство или эмулятор Android. Полный текст ошибки в ADB обычно выглядит так:",[30,31,36],"pre",{"className":32,"code":34,"language":35},[33],"language-text","adb: failed to install app.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Failed collecting certificates for /manifest]\n","text",[25,37,34],{"__ignoreMap":38},"",[21,40,41],{},"Система не может найти действительные цифровые сертификаты внутри пакета, поэтому отклоняет установку по соображениям безопасности. Ошибка возникает на этапе парсинга манифеста до начала копирования файлов.",[16,43,45],{"id":44},"причины-возникновения","Причины возникновения",[47,48,49,53,56,59,66],"ul",{},[50,51,52],"li",{},"APK не был подписан перед сборкой или подпись была удалена после изменения файлов.",[50,54,55],{},"Использован некорректный или повреждённый файл хранилища ключей (keystore).",[50,57,58],{},"Несовпадение алгоритма подписи или дата истечения сертификата.",[50,60,61,62,65],{},"Попытка установить APK, собранный без ",[25,63,64],{},"signingConfig"," в Gradle.",[50,67,68],{},"Ручное редактирование APK (например, через архиватор), после которого файл перестал быть подписан.",[16,70,72],{"id":71},"способы-решения","Способы решения",[16,74,76],{"id":75},"способ-1-проверить-и-переподписать-apk-с-помощью-apksigner","Способ 1: Проверить и переподписать APK с помощью apksigner",[21,78,79],{},"Убедитесь, что APK подписан, и при необходимости подпишите его заново.",[21,81,82],{},"Проверка подписи:",[30,84,88],{"className":85,"code":86,"language":87,"meta":38,"style":38},"language-bash shiki shiki-themes github-light github-dark","apksigner verify --verbose app.apk\n","bash",[25,89,90],{"__ignoreMap":38},[91,92,95,99,103,107],"span",{"class":93,"line":94},"line",1,[91,96,98],{"class":97},"sScJk","apksigner",[91,100,102],{"class":101},"sZZnC"," verify",[91,104,106],{"class":105},"sj4cs"," --verbose",[91,108,109],{"class":101}," app.apk\n",[21,111,112,113,116],{},"Если проверка не проходит, подпишите APK debug-ключом (по умолчанию в ",[25,114,115],{},"~/.android/debug.keystore","):",[30,118,120],{"className":85,"code":119,"language":87,"meta":38,"style":38},"apksigner sign --ks ~/.android/debug.keystore \\\n               --ks-key androiddebugkey \\\n               --ks-pass pass:android \\\n               --key-pass pass:android \\\n               --out app-signed.apk \\\n               app.apk\n",[25,121,122,138,149,160,170,181],{"__ignoreMap":38},[91,123,124,126,129,132,135],{"class":93,"line":94},[91,125,98],{"class":97},[91,127,128],{"class":101}," sign",[91,130,131],{"class":105}," --ks",[91,133,134],{"class":101}," ~/.android/debug.keystore",[91,136,137],{"class":105}," \\\n",[91,139,141,144,147],{"class":93,"line":140},2,[91,142,143],{"class":105},"               --ks-key",[91,145,146],{"class":101}," androiddebugkey",[91,148,137],{"class":105},[91,150,152,155,158],{"class":93,"line":151},3,[91,153,154],{"class":105},"               --ks-pass",[91,156,157],{"class":101}," pass:android",[91,159,137],{"class":105},[91,161,163,166,168],{"class":93,"line":162},4,[91,164,165],{"class":105},"               --key-pass",[91,167,157],{"class":101},[91,169,137],{"class":105},[91,171,173,176,179],{"class":93,"line":172},5,[91,174,175],{"class":105},"               --out",[91,177,178],{"class":101}," app-signed.apk",[91,180,137],{"class":105},[91,182,184],{"class":93,"line":183},6,[91,185,186],{"class":101},"               app.apk\n",[21,188,189],{},"Установите подписанный APK:",[30,191,193],{"className":85,"code":192,"language":87,"meta":38,"style":38},"adb install app-signed.apk\n",[25,194,195],{"__ignoreMap":38},[91,196,197,200,203],{"class":93,"line":94},[91,198,199],{"class":97},"adb",[91,201,202],{"class":101}," install",[91,204,205],{"class":101}," app-signed.apk\n",[16,207,209],{"id":208},"способ-2-пересобрать-проект-с-правильным-signingconfig","Способ 2: Пересобрать проект с правильным signingConfig",[21,211,212],{},"Если у вас исходный код, убедитесь, что сборка подписывается автоматически.",[21,214,215,216,219,220,223],{},"В ",[25,217,218],{},"app/build.gradle"," добавьте или проверьте ",[25,221,222],{},"signingConfigs",":",[30,225,229],{"className":226,"code":227,"language":228,"meta":38,"style":38},"language-groovy shiki shiki-themes github-light github-dark","android {\n    signingConfigs {\n        debug {\n            storeFile file(\"debug.keystore\")\n            storePassword \"android\"\n            keyAlias \"androiddebugkey\"\n            keyPassword \"android\"\n        }\n        release {\n            storeFile file(\"release.keystore\")\n            storePassword System.getenv(\"KEYSTORE_PASSWORD\")\n            keyAlias \"release\"\n            keyPassword System.getenv(\"KEY_PASSWORD\")\n        }\n    }\n\n    buildTypes {\n        debug {\n            signingConfig signingConfigs.debug\n        }\n        release {\n            signingConfig signingConfigs.release\n            minifyEnabled true\n            proguardFiles getDefaultProguardFile(\"proguard-android-optimize.txt\"), \"proguard-rules.pro\"\n        }\n    }\n}\n","groovy",[25,230,231,236,241,246,251,256,261,267,273,279,285,291,297,303,308,314,321,327,332,338,343,348,354,360,366,371,376],{"__ignoreMap":38},[91,232,233],{"class":93,"line":94},[91,234,235],{},"android {\n",[91,237,238],{"class":93,"line":140},[91,239,240],{},"    signingConfigs {\n",[91,242,243],{"class":93,"line":151},[91,244,245],{},"        debug {\n",[91,247,248],{"class":93,"line":162},[91,249,250],{},"            storeFile file(\"debug.keystore\")\n",[91,252,253],{"class":93,"line":172},[91,254,255],{},"            storePassword \"android\"\n",[91,257,258],{"class":93,"line":183},[91,259,260],{},"            keyAlias \"androiddebugkey\"\n",[91,262,264],{"class":93,"line":263},7,[91,265,266],{},"            keyPassword \"android\"\n",[91,268,270],{"class":93,"line":269},8,[91,271,272],{},"        }\n",[91,274,276],{"class":93,"line":275},9,[91,277,278],{},"        release {\n",[91,280,282],{"class":93,"line":281},10,[91,283,284],{},"            storeFile file(\"release.keystore\")\n",[91,286,288],{"class":93,"line":287},11,[91,289,290],{},"            storePassword System.getenv(\"KEYSTORE_PASSWORD\")\n",[91,292,294],{"class":93,"line":293},12,[91,295,296],{},"            keyAlias \"release\"\n",[91,298,300],{"class":93,"line":299},13,[91,301,302],{},"            keyPassword System.getenv(\"KEY_PASSWORD\")\n",[91,304,306],{"class":93,"line":305},14,[91,307,272],{},[91,309,311],{"class":93,"line":310},15,[91,312,313],{},"    }\n",[91,315,317],{"class":93,"line":316},16,[91,318,320],{"emptyLinePlaceholder":319},true,"\n",[91,322,324],{"class":93,"line":323},17,[91,325,326],{},"    buildTypes {\n",[91,328,330],{"class":93,"line":329},18,[91,331,245],{},[91,333,335],{"class":93,"line":334},19,[91,336,337],{},"            signingConfig signingConfigs.debug\n",[91,339,341],{"class":93,"line":340},20,[91,342,272],{},[91,344,346],{"class":93,"line":345},21,[91,347,278],{},[91,349,351],{"class":93,"line":350},22,[91,352,353],{},"            signingConfig signingConfigs.release\n",[91,355,357],{"class":93,"line":356},23,[91,358,359],{},"            minifyEnabled true\n",[91,361,363],{"class":93,"line":362},24,[91,364,365],{},"            proguardFiles getDefaultProguardFile(\"proguard-android-optimize.txt\"), \"proguard-rules.pro\"\n",[91,367,369],{"class":93,"line":368},25,[91,370,272],{},[91,372,374],{"class":93,"line":373},26,[91,375,313],{},[91,377,379],{"class":93,"line":378},27,[91,380,381],{},"}\n",[21,383,384],{},"Выполните очистку и пересборку:",[30,386,388],{"className":85,"code":387,"language":87,"meta":38,"style":38},"./gradlew clean assembleDebug\n",[25,389,390],{"__ignoreMap":38},[91,391,392,395,398],{"class":93,"line":94},[91,393,394],{"class":97},"./gradlew",[91,396,397],{"class":101}," clean",[91,399,400],{"class":101}," assembleDebug\n",[16,402,404],{"id":403},"способ-3-использовать-jarsigner-для-ручной-подписи","Способ 3: Использовать jarsigner для ручной подписи",[21,406,407,408,410,411,414],{},"Если ",[25,409,98],{}," недоступен, можно подписать APK через ",[25,412,413],{},"jarsigner",".",[21,416,417],{},"Подпишите APK:",[30,419,421],{"className":85,"code":420,"language":87,"meta":38,"style":38},"jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 \\\n          -keystore ~/.android/debug.keystore \\\n          app.apk androiddebugkey\n",[25,422,423,444,453],{"__ignoreMap":38},[91,424,425,427,430,433,436,439,442],{"class":93,"line":94},[91,426,413],{"class":97},[91,428,429],{"class":105}," -verbose",[91,431,432],{"class":105}," -sigalg",[91,434,435],{"class":101}," SHA256withRSA",[91,437,438],{"class":105}," -digestalg",[91,440,441],{"class":101}," SHA-256",[91,443,137],{"class":105},[91,445,446,449,451],{"class":93,"line":140},[91,447,448],{"class":105},"          -keystore",[91,450,134],{"class":101},[91,452,137],{"class":105},[91,454,455,458],{"class":93,"line":151},[91,456,457],{"class":101},"          app.apk",[91,459,460],{"class":101}," androiddebugkey\n",[21,462,463],{},"Убедитесь, что подпись добавлена:",[30,465,467],{"className":85,"code":466,"language":87,"meta":38,"style":38},"jarsigner -verify -verbose -certs app.apk\n",[25,468,469],{"__ignoreMap":38},[91,470,471,473,476,478,481],{"class":93,"line":94},[91,472,413],{"class":97},[91,474,475],{"class":105}," -verify",[91,477,429],{"class":105},[91,479,480],{"class":105}," -certs",[91,482,109],{"class":101},[21,484,485],{},"Установите APK:",[30,487,489],{"className":85,"code":488,"language":87,"meta":38,"style":38},"adb install app.apk\n",[25,490,491],{"__ignoreMap":38},[91,492,493,495,497],{"class":93,"line":94},[91,494,199],{"class":97},[91,496,202],{"class":101},[91,498,109],{"class":101},[500,501],"in-article-ad",{},[16,503,505],{"id":504},"способ-4-сгенерировать-новый-keystore-и-подписать-релиз","Способ 4: Сгенерировать новый keystore и подписать релиз",[21,507,508],{},"Если проблема в повреждённом или просроченном сертификате, создайте новое хранилище.",[21,510,511,512,223],{},"Сгенерируйте keystore с помощью ",[25,513,514],{},"keytool",[30,516,518],{"className":85,"code":517,"language":87,"meta":38,"style":38},"keytool -genkeypair -v \\\n        -keystore release.keystore \\\n        -alias release \\\n        -keyalg RSA \\\n        -keysize 2048 \\\n        -validity 10000 \\\n        -storepass changeit \\\n        -keypass changeit\n",[25,519,520,532,542,552,562,572,582,592],{"__ignoreMap":38},[91,521,522,524,527,530],{"class":93,"line":94},[91,523,514],{"class":97},[91,525,526],{"class":105}," -genkeypair",[91,528,529],{"class":105}," -v",[91,531,137],{"class":105},[91,533,534,537,540],{"class":93,"line":140},[91,535,536],{"class":105},"        -keystore",[91,538,539],{"class":101}," release.keystore",[91,541,137],{"class":105},[91,543,544,547,550],{"class":93,"line":151},[91,545,546],{"class":105},"        -alias",[91,548,549],{"class":101}," release",[91,551,137],{"class":105},[91,553,554,557,560],{"class":93,"line":162},[91,555,556],{"class":105},"        -keyalg",[91,558,559],{"class":101}," RSA",[91,561,137],{"class":105},[91,563,564,567,570],{"class":93,"line":172},[91,565,566],{"class":105},"        -keysize",[91,568,569],{"class":105}," 2048",[91,571,137],{"class":105},[91,573,574,577,580],{"class":93,"line":183},[91,575,576],{"class":105},"        -validity",[91,578,579],{"class":105}," 10000",[91,581,137],{"class":105},[91,583,584,587,590],{"class":93,"line":263},[91,585,586],{"class":105},"        -storepass",[91,588,589],{"class":101}," changeit",[91,591,137],{"class":105},[91,593,594,597],{"class":93,"line":269},[91,595,596],{"class":105},"        -keypass",[91,598,599],{"class":101}," changeit\n",[21,601,417],{},[30,603,605],{"className":85,"code":604,"language":87,"meta":38,"style":38},"apksigner sign --ks release.keystore \\\n               --ks-pass pass:changeit \\\n               --key-pass pass:changeit \\\n               --out app-release-signed.apk \\\n               app-release-unsigned.apk\n",[25,606,607,619,628,636,645],{"__ignoreMap":38},[91,608,609,611,613,615,617],{"class":93,"line":94},[91,610,98],{"class":97},[91,612,128],{"class":101},[91,614,131],{"class":105},[91,616,539],{"class":101},[91,618,137],{"class":105},[91,620,621,623,626],{"class":93,"line":140},[91,622,154],{"class":105},[91,624,625],{"class":101}," pass:changeit",[91,627,137],{"class":105},[91,629,630,632,634],{"class":93,"line":151},[91,631,165],{"class":105},[91,633,625],{"class":101},[91,635,137],{"class":105},[91,637,638,640,643],{"class":93,"line":162},[91,639,175],{"class":105},[91,641,642],{"class":101}," app-release-signed.apk",[91,644,137],{"class":105},[91,646,647],{"class":93,"line":172},[91,648,649],{"class":101},"               app-release-unsigned.apk\n",[21,651,652],{},"Установите и проверьте:",[30,654,656],{"className":85,"code":655,"language":87,"meta":38,"style":38},"adb install app-release-signed.apk\napksigner verify --verbose app-release-signed.apk\n",[25,657,658,667],{"__ignoreMap":38},[91,659,660,662,664],{"class":93,"line":94},[91,661,199],{"class":97},[91,663,202],{"class":101},[91,665,666],{"class":101}," app-release-signed.apk\n",[91,668,669,671,673,675],{"class":93,"line":140},[91,670,98],{"class":97},[91,672,102],{"class":101},[91,674,106],{"class":105},[91,676,666],{"class":101},[16,678,680],{"id":679},"профилактика","Профилактика",[47,682,683,689,692,695,701],{},[50,684,685,686,688],{},"Всегда используйте ",[25,687,64],{}," в Gradle для debug и release сборок.",[50,690,691],{},"Храните production keystore в безопасном месте и никогда не коммитьте пароли в репозиторий.",[50,693,694],{},"Перед ручным редактированием APK делайте резервную копию и переподписывайте файл после изменений.",[50,696,697,698,414],{},"Регулярно проверяйте срок действия сертификатов с помощью ",[25,699,700],{},"keytool -list -v -keystore your.keystore",[50,702,703],{},"Используйте CI/CD с изолированным доступом к keystore для автоматической подписи релизов.",[705,706,707],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":38,"searchDepth":140,"depth":140,"links":709},[710,711,712,713,714,715,716,717],{"id":18,"depth":140,"text":19},{"id":44,"depth":140,"text":45},{"id":71,"depth":140,"text":72},{"id":75,"depth":140,"text":76},{"id":208,"depth":140,"text":209},{"id":403,"depth":140,"text":404},{"id":504,"depth":140,"text":505},{"id":679,"depth":140,"text":680},null,"2026-04-27 11:06:18","Пошаговая инструкция по устранению ошибки INSTALL_PARSE_FAILED_NO_CERTIFICATES на Android. Проверенные решения для установки APK за 5 минут без потери данных.","medium",false,"15-30 мин","md",[726,729,732,735],{"question":727,"answer":728},"Почему возникает ошибка INSTALL_PARSE_FAILED_NO_CERTIFICATES при установке через ADB?","Система не находит действительной цифровой подписи в APK. Частая причина — APK был изменён и потерял подпись, либо собран без signingConfig.",{"question":730,"answer":731},"Можно ли установить APK вообще без подписи?","Нет. Начиная с Android 7.0, все APK обязаны иметь подпись. Даже для отладки требуется подпись debug-ключом.",{"question":733,"answer":734},"Поможет ли отключение проверки в настройках разработчика?","Нет. Отключение Verify apps не отменяет требование наличия подписи в самом APK — ошибка останется.",{"question":736,"answer":737},"Как проверить, подписан ли APK и какой сертификат используется?","Используйте `apksigner verify --verbose app.apk` и `keytool -printcert -jarfile app.apk` для проверки подписи и отпечатка сертификата.",[739,742,745],{"name":740,"text":741},"Проверить наличие подписи в APK","Запустите проверку через apksigner или jarsigner, чтобы убедиться, что APK подписан и сертификат валиден.",{"name":743,"text":744},"Переподписать APK debug-ключом","Если это отладочная сборка, подпишите заново через apksigner с ключом из debug.keystore.",{"name":746,"text":747},"Пересобрать проект с правильным signingConfig","Убедитесь, что build.gradle содержит signingConfig для release или debug и выполните clean + rebuild.","PT30M",[27,750,751,752,753,754,755,756],"ошибка установки APK Android","нет сертификатов при установке приложения","Android parse failed no certificates","подпись APK недействительна","установка приложения без подписи","исправить ошибку парсинга Android","re-sign APK Android","ru_RU",{},"/errors/android/install_parse_failed_no_certificates","android",[762,763,764],"/errors/android/INSTALL_PARSE_FAILED_MANIFEST_MALFORMED","/errors/android/INSTALL_FAILED_INSUFFICIENT_STORAGE","/guides/android/how-to-sign-apk","Ошибки Android",{"title":5,"description":720},"high","errors/android/INSTALL_PARSE_FAILED_NO_CERTIFICATES","Ошибка возникает при установке APK из-за отсутствия или недействительности цифровой подписи. Вы узнаете причины и научитесь подписывать приложения, пересобирать пакеты и настраивать среду разработки.",[771,772,773,774,775,98,514,776],"Android","APK","signing","certificate","ADB","debug keystore","error","ZyRdJpFT_Q4ilbIc8z9B9ow4H00wtZXWkUpYFucgZlc",{"data":780,"body":781},{},{"type":782,"children":783},"root",[784],{"type":785,"tag":21,"props":786,"children":787},"element",{},[788],{"type":35,"value":728},{"data":790,"body":791},{},{"type":782,"children":792},[793],{"type":785,"tag":21,"props":794,"children":795},{},[796],{"type":35,"value":731},{"data":798,"body":799},{},{"type":782,"children":800},[801],{"type":785,"tag":21,"props":802,"children":803},{},[804],{"type":35,"value":734},{"data":806,"body":807},{},{"type":782,"children":808},[809],{"type":785,"tag":21,"props":810,"children":811},{},[812,814,820,822,828],{"type":35,"value":813},"Используйте ",{"type":785,"tag":25,"props":815,"children":817},{"className":816},[],[818],{"type":35,"value":819},"apksigner verify --verbose app.apk",{"type":35,"value":821}," и ",{"type":785,"tag":25,"props":823,"children":825},{"className":824},[],[826],{"type":35,"value":827},"keytool -printcert -jarfile app.apk",{"type":35,"value":829}," для проверки подписи и отпечатка сертификата.",{"data":831,"body":832},{},{"type":782,"children":833},[834],{"type":785,"tag":21,"props":835,"children":836},{},[837],{"type":35,"value":741},{"data":839,"body":840},{},{"type":782,"children":841},[842],{"type":785,"tag":21,"props":843,"children":844},{},[845],{"type":35,"value":744},{"data":847,"body":848},{},{"type":782,"children":849},[850],{"type":785,"tag":21,"props":851,"children":852},{},[853],{"type":35,"value":747},[]]