[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/android/apk-signature-error":3,"mdc-pfcl3u-key":429,"mdc--a995ci-key":439,"mdc-2bkg7c-key":447,"mdc--1o1e5q-key":455,"mdc-u7qhrm-key":463,"mdc--ukwucs-key":471,"mdc--t7ay2f-key":488,"related-/errors/android/apk-install-error,/errors/android/app-not-install-android":496},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":371,"code":27,"createdAt":372,"description":373,"difficulty":374,"draft":375,"estimatedTime":376,"extension":377,"faq":378,"howToSteps":388,"howToTotalTime":401,"image":371,"keywords":402,"locale":410,"meta":411,"navigation":412,"path":413,"platform":414,"related":415,"section":418,"seo":419,"severity":374,"stem":420,"summary":421,"tags":422,"twitterCreator":371,"twitterSite":371,"type":427,"updatedAt":372,"__hash__":428},"content_ru/errors/android/apk-signature-error.md","Исправляем ошибку подписи APK на Android: пошаговое решение",[7,8,9,10],"Android 10+","Android 11","Android 12","Android 13","FixPedia Team",{"type":13,"value":14,"toc":361},"minimark",[15,20,33,36,46,57,61,64,107,111,116,138,142,149,184,190,194,208,307,318,322,325,346,352,357],[16,17,19],"h2",{"id":18},"что-означает-ошибка-0x80000103","Что означает ошибка 0x80000103",[21,22,23,24,28,29,32],"p",{},"Эта ошибка появляется, когда Android не может проверить цифровую подпись приложения при попытке установить или обновить APK. Код ",[25,26,27],"code",{},"0x80000103"," обычно означает ",[25,30,31],{},"SIGNATURE_VERIFY_FAILED"," — система обнаружила несоответствие между подписанным файлом и тем, что ожидает операционная система. Ошибка блокирует установку и может появляться сразу после перетасовки файлов, при переносе между устройствах или после пересборки проекта без сохранения настроек подписи.",[21,34,35],{},"Ошибка часто сопровождается сообщением в консоли Android Studio:",[37,38,43],"pre",{"className":39,"code":41,"language":42},[40],"language-text","Installation failed with signature 0x80000103 error\n","text",[25,44,41],{"__ignoreMap":45},"",[21,47,48,49,52,53,56],{},"Это означает, что подпись либо повреждена, либо не проходит проверку на соответствие версиям ",[25,50,51],{},"versionCode"," и ",[25,54,55],{},"versionName",".",[16,58,60],{"id":59},"причины-возникновения","Причины возникновения",[21,62,63],{},"Причины ошибки подписи обычно конкретны и связаны с управлением ключами:",[65,66,67,75,85,91,101],"ol",{},[68,69,70,74],"li",{},[71,72,73],"strong",{},"Поврежденный keystore"," — файл хранилища ключей мог быть поврежден при копировании или перемещении между системами.",[68,76,77,80,81,84],{},[71,78,79],{},"Истек срок действия ключа"," — если дата ",[25,82,83],{},"validity"," истекла, Android отклоняет подпись как устаревшую.",[68,86,87,90],{},[71,88,89],{},"Несоответствие versionCode"," — при каждой новой сборке versionCode должен увеличиваться. Если вы попытались установить APK с тем же versionCode и другой подписью, система заблокирует установку.",[68,92,93,96,97,100],{},[71,94,95],{},"Неверная настройка signingConfig"," — в ",[25,98,99],{},"build.gradle"," могут быть указаны не те параметры keystore или ключа, что приведет к генерации APK с другой подписью.",[68,102,103,106],{},[71,104,105],{},"Перенос APK без сохранения подписи"," — передача APK по почте или мессенджерам часто приводит к изменению байтов файла, что ломает подпись.",[16,108,110],{"id":109},"способы-решения","Способы решения",[112,113,115],"h3",{"id":114},"способ-1-переподпись-через-интерфейс-android-studio","Способ 1: Переподпись через интерфейс Android Studio",[21,117,118,119,122,123,122,126,129,130,133,134,137],{},"Самый простой путь для разработчиков, использующих официальный редактор. Откройте проект в Android Studio, перейдите в меню ",[25,120,121],{},"Build"," → ",[25,124,125],{},"Generate Signed Bundle / APK",[25,127,128],{},"APK",". Выберите существующий модуль и нажмите ",[25,131,132],{},"Create new key"," или выберите уже имеющийся keystore. Введите пароли и путь к файлу, затем нажмите ",[25,135,136],{},"Finish",". Сгенерированный APK установится на устройство без ошибок проверки подписи.",[112,139,141],{"id":140},"способ-2-подписать-apk-через-командную-строку-apksigner","Способ 2: Подписать APK через командную строку apksigner",[21,143,144,145,148],{},"Если вам нужно подписать файл без открытия Android Studio, используйте инструмент ",[25,146,147],{},"apksigner",", который идет в комплекте с SDK. Откройте терминал в директории с вашим APK и выполните:",[37,150,154],{"className":151,"code":152,"language":153,"meta":45,"style":45},"language-bash shiki shiki-themes github-light github-dark","apksigner sign --ks my-release-key.jks --ks-pass pass:mykeystorepassword my-app.apk\n","bash",[25,155,156],{"__ignoreMap":45},[157,158,161,164,168,172,175,178,181],"span",{"class":159,"line":160},"line",1,[157,162,147],{"class":163},"sScJk",[157,165,167],{"class":166},"sZZnC"," sign",[157,169,171],{"class":170},"sj4cs"," --ks",[157,173,174],{"class":166}," my-release-key.jks",[157,176,177],{"class":170}," --ks-pass",[157,179,180],{"class":166}," pass:mykeystorepassword",[157,182,183],{"class":166}," my-app.apk\n",[21,185,186,187,189],{},"Команда заменит подпись на новую, соответствующую указанному keystore. Убедитесь, что ",[25,188,51],{}," в манифесте увеличился по сравнению с предыдущей версией, иначе установка все равно будет заблокирована.",[112,191,193],{"id":192},"способ-3-пересборка-проекта-с-исправлением-signingconfig","Способ 3: Пересборка проекта с исправлением signingConfig",[21,195,196,197,200,201,52,204,207],{},"Если ошибка повторяется, проверьте файл ",[25,198,199],{},"app/build.gradle",". Убедитесь, что блок ",[25,202,203],{},"signingConfigs",[25,205,206],{},"buildTypes"," настроены верно:",[37,209,213],{"className":210,"code":211,"language":212,"meta":45,"style":45},"language-groovy shiki shiki-themes github-light github-dark","android {\n    signingConfigs {\n        release {\n            storeFile file('my-release-key.jks')\n            storePassword 'mykeystorepassword'\n            keyAlias 'mykeyalias'\n            keyPassword 'mykeypassword'\n        }\n    }\n    buildTypes {\n        release {\n            signingConfig signingConfigs.release\n            // другие настройки...\n        }\n    }\n}\n","groovy",[25,214,215,220,226,232,238,244,250,256,262,268,274,279,285,291,296,301],{"__ignoreMap":45},[157,216,217],{"class":159,"line":160},[157,218,219],{},"android {\n",[157,221,223],{"class":159,"line":222},2,[157,224,225],{},"    signingConfigs {\n",[157,227,229],{"class":159,"line":228},3,[157,230,231],{},"        release {\n",[157,233,235],{"class":159,"line":234},4,[157,236,237],{},"            storeFile file('my-release-key.jks')\n",[157,239,241],{"class":159,"line":240},5,[157,242,243],{},"            storePassword 'mykeystorepassword'\n",[157,245,247],{"class":159,"line":246},6,[157,248,249],{},"            keyAlias 'mykeyalias'\n",[157,251,253],{"class":159,"line":252},7,[157,254,255],{},"            keyPassword 'mykeypassword'\n",[157,257,259],{"class":159,"line":258},8,[157,260,261],{},"        }\n",[157,263,265],{"class":159,"line":264},9,[157,266,267],{},"    }\n",[157,269,271],{"class":159,"line":270},10,[157,272,273],{},"    buildTypes {\n",[157,275,277],{"class":159,"line":276},11,[157,278,231],{},[157,280,282],{"class":159,"line":281},12,[157,283,284],{},"            signingConfig signingConfigs.release\n",[157,286,288],{"class":159,"line":287},13,[157,289,290],{},"            // другие настройки...\n",[157,292,294],{"class":159,"line":293},14,[157,295,261],{},[157,297,299],{"class":159,"line":298},15,[157,300,267],{},[157,302,304],{"class":159,"line":303},16,[157,305,306],{},"}\n",[21,308,309,310,313,314,317],{},"После изменений выполните ",[25,311,312],{},"clean rebuild",": ",[25,315,316],{},"./gradlew clean assembleRelease",". Это пересоберет APK с правильными настройками подписи, сбросив старые кэши, которые могли вызывать конфликт.",[16,319,321],{"id":320},"профилактика","Профилактика",[21,323,324],{},"Чтобы избежать повторной ошибки подписи:",[326,327,328,331,337,340,343],"ul",{},[68,329,330],{},"Храните keystore в надежном месте (например, в парольном менеджере или защищенном хранилище CI/CD), никогда не отправляйте его вместе с APK.",[68,332,333,334,336],{},"Всегда увеличивайте ",[25,335,51],{}," при каждой новой сборке, даже если изменения косметические.",[68,338,339],{},"Настройте автоматическую подпись в системах непрерывной интеграции (GitHub Actions, GitLab CI), чтобы ручной этап был исключен.",[68,341,342],{},"Периодически проверяйте даты validity ключа и перегенерируйте его за 30 дней до истечения срока, чтобы не попасть в ситуацию с истекшим сертификатом.",[68,344,345],{},"Используйте одни и тот же keystore для всех версий приложения (debug и release), чтобы система распознавала обновления корректно.",[347,348,349],"blockquote",{},[21,350,351],{},"⚠️ Важно: Не удаляйте старый keystore после генерации новой подписи, если у вас есть пользователи, установленные на старой версии. Для обновления им потребуется новая версия с incremented versionCode и совместимой подписью.",[347,353,354],{},[21,355,356],{},"💡 Совет: Если вы тестируете приложение на устройстве, используйте режим подписи debug — Android автоматически подписывает такие сборки, и проверку подписи проходить не требуется.",[358,359,360],"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":45,"searchDepth":222,"depth":222,"links":362},[363,364,365,370],{"id":18,"depth":222,"text":19},{"id":59,"depth":222,"text":60},{"id":109,"depth":222,"text":110,"children":366},[367,368,369],{"id":114,"depth":228,"text":115},{"id":140,"depth":228,"text":141},{"id":192,"depth":228,"text":193},{"id":320,"depth":222,"text":321},null,"2026-09-05 08:15:52","Пошаговое руководство по исправлению ошибок подписи APK на Android с полными инструкциями. Возвращайте приложения к работе за 5 минут!","medium",false,"10-20 мин","md",[379,382,385],{"question":380,"answer":381},"Почему возникает ошибка подписи APK?","Ошибка возникает, когда файл APK подписан ключом, который не соответствует требованиям системы Android, или когда подпись повреждена при передаче.",{"question":383,"answer":384},"Можно ли избежать ошибки при повторной подписи?","Да, используйте надежный keystore и следите за датами validity ключа, иначе подпись истечет и будет отклонена.",{"question":386,"answer":387},"Различается ли ошибка на разных версиях Android?","Да, Android 10+ вводит stricter проверки подписи, старые версии могут пропускать её с предупреждением, но на новых — блокировка установки.",[389,392,395,398],{"name":390,"text":391},"Проверить причину ошибки","Откройте терминал или консоль разработки и посмотрите детали ошибки: обычно указывается, какая часть подписи неверна или устарела.",{"name":393,"text":394},"Переподписать APK через Android Studio","Используйте меню Build → Generate Signed Bundle / APK, выберите модуль и ключ, чтобы создать новую подпись и заменить старую.",{"name":396,"text":397},"Подписать APK через командную строку apksigner","Выполните команду `apksigner sign --ks my-release-key.jks my-app.apk`, указав путь к keystore и паролю.",{"name":399,"text":400},"Очистить кэш и переустановить приложение","Удалите приложение с устройства, очистите кэш Gradle/Android Studio, затем установите пересобранный APK с новой подписью.","PT15M",[403,404,405,406,407,408,409],"ошибка подписи APK","как исправить ошибку APK","ошибка подписи приложения Android","проблемы с установкой APK","verification failed APK","android apk sign error","как подписать APK","ru_RU",{"::in-article-ad :":371,"--":371},true,"/errors/android/apk-signature-error","android",[416,417],"/errors/android/apk-install-error","/errors/android/app-not-install-android","Ошибки Android",{"title":5,"description":373},"errors/android/apk-signature-error","Ошибка подписи APK мешает установке приложений на Android. В статье разбор причин и 4 проверенных способа решения проблемы.",[414,423,424,425,426],"apk","ошибка подписи","debug","studio","error","SA-_ayjTv0OYUS8bvkZCHMt3QScWbTtfK9jEuprVDP4",{"data":430,"body":431},{},{"type":432,"children":433},"root",[434],{"type":435,"tag":21,"props":436,"children":437},"element",{},[438],{"type":42,"value":381},{"data":440,"body":441},{},{"type":432,"children":442},[443],{"type":435,"tag":21,"props":444,"children":445},{},[446],{"type":42,"value":384},{"data":448,"body":449},{},{"type":432,"children":450},[451],{"type":435,"tag":21,"props":452,"children":453},{},[454],{"type":42,"value":387},{"data":456,"body":457},{},{"type":432,"children":458},[459],{"type":435,"tag":21,"props":460,"children":461},{},[462],{"type":42,"value":391},{"data":464,"body":465},{},{"type":432,"children":466},[467],{"type":435,"tag":21,"props":468,"children":469},{},[470],{"type":42,"value":394},{"data":472,"body":473},{},{"type":432,"children":474},[475],{"type":435,"tag":21,"props":476,"children":477},{},[478,480,486],{"type":42,"value":479},"Выполните команду ",{"type":435,"tag":25,"props":481,"children":483},{"className":482},[],[484],{"type":42,"value":485},"apksigner sign --ks my-release-key.jks my-app.apk",{"type":42,"value":487},", указав путь к keystore и паролю.",{"data":489,"body":490},{},{"type":432,"children":491},[492],{"type":435,"tag":21,"props":493,"children":494},{},[495],{"type":42,"value":400},[]]