[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/android/app-signing":3,"mdc-9r0w1d-key":513,"mdc-vl67j4-key":523,"mdc--7v1asx-key":531,"mdc-up9j6g-key":554,"mdc--211sop-key":571,"mdc-890v6e-key":588,"mdc-iyzb9f-key":611,"mdc-d6lw7j-key":627,"mdc--xklhh4-key":652,"related-/guides/android/debug-build,/guides/android/upload-to-play-console,/errors/android/invalid-signature":660},{"id":4,"title":5,"appliesTo":6,"author":10,"body":11,"canonical":445,"code":97,"createdAt":446,"description":447,"difficulty":448,"draft":449,"estimatedTime":450,"extension":451,"faq":452,"howToSteps":465,"howToTotalTime":481,"image":445,"keywords":482,"locale":493,"meta":494,"navigation":495,"path":496,"platform":497,"related":498,"section":502,"seo":503,"severity":448,"stem":504,"summary":505,"tags":506,"twitterCreator":445,"twitterSite":445,"type":511,"updatedAt":446,"__hash__":512},"content_ru/guides/android/app-signing.md","Как подписать Android APK: полное пошаговое руководство",[7,8,9],"Android 8.0 (API 26) и выше","Android Studio Flamingo 2021.2.1 и выше","JDK 11","FixPedia Team",{"type":12,"value":13,"toc":433},"minimark",[14,19,23,27,67,77,81,85,91,221,232,236,279,288,292,295,303,306,309,313,319,334,337,343,346,350,374,378,393,397,429],[15,16,18],"h2",{"id":17},"введение-зачем-это-нужно","Введение / Зачем это нужно",[20,21,22],"p",{},"Подпись APK — обязательный этап подготовки Android-приложения к публикации. Подпись подтверждает авторство, обеспечивает целостность бинарного файла и требуется Google Play для распространения. После выполнения этого руководства у вас будет готовый подписанный APK, соответствующий всем требованиям магазина.",[15,24,26],{"id":25},"требования-подготовка","Требования / Подготовка",[28,29,30,38,43,49,56],"ul",{},[31,32,33,37],"li",{},[34,35,36],"strong",{},"Android Studio"," (версия 2021.2.1 или выше)",[31,39,40,42],{},[34,41,9],{}," (или более новая версия)",[31,44,45,48],{},[34,46,47],{},"Android SDK"," и инструменты платформы (включены в Android Studio)",[31,50,51,52],{},"Доступ к файловой системе для сохранения ",[53,54,55],"code",{},"*.keystore",[31,57,58,59,62,63,66],{},"Базовые знания работы с терминалом (",[53,60,61],{},"keytool",", ",[53,64,65],{},"apksigner",")",[68,69,70],"blockquote",{},[20,71,72,73,76],{},"💡 ",[34,74,75],{},"Совет:"," Храните Keystore в надёжном месте, дублируйте его и используйте менеджер паролей.",[15,78,80],{"id":79},"пошаговая-инструкция","Пошаговая инструкция",[15,82,84],{"id":83},"шаг-1-создайте-подписной-ключ-keystore","Шаг 1: Создайте подписной ключ (Keystore)",[20,86,87,88,90],{},"Для подписи вам нужен приватный ключ. Используйте ",[53,89,61],{}," из командной строки:",[92,93,98],"pre",{"className":94,"code":95,"language":96,"meta":97,"style":97},"language-bash shiki shiki-themes github-light github-dark","keytool -genkeypair -v \\\n  -keystore my-release-key.keystore \\\n  -alias mykey \\\n  -keyalg RSA \\\n  -keysize 2048 \\\n  -validity 10000 \\\n  -storepass \u003Cpassword> \\\n  -keypass \u003Cpassword> \\\n  -dname \"CN=YourName, OU=YourOrg, O=YourOrg, L=City, S=State, C=US\"\n","bash","",[53,99,100,118,130,141,152,163,174,196,212],{"__ignoreMap":97},[101,102,105,108,112,115],"span",{"class":103,"line":104},"line",1,[101,106,61],{"class":107},"sScJk",[101,109,111],{"class":110},"sj4cs"," -genkeypair",[101,113,114],{"class":110}," -v",[101,116,117],{"class":110}," \\\n",[101,119,121,124,128],{"class":103,"line":120},2,[101,122,123],{"class":110},"  -keystore",[101,125,127],{"class":126},"sZZnC"," my-release-key.keystore",[101,129,117],{"class":110},[101,131,133,136,139],{"class":103,"line":132},3,[101,134,135],{"class":110},"  -alias",[101,137,138],{"class":126}," mykey",[101,140,117],{"class":110},[101,142,144,147,150],{"class":103,"line":143},4,[101,145,146],{"class":110},"  -keyalg",[101,148,149],{"class":126}," RSA",[101,151,117],{"class":110},[101,153,155,158,161],{"class":103,"line":154},5,[101,156,157],{"class":110},"  -keysize",[101,159,160],{"class":110}," 2048",[101,162,117],{"class":110},[101,164,166,169,172],{"class":103,"line":165},6,[101,167,168],{"class":110},"  -validity",[101,170,171],{"class":110}," 10000",[101,173,117],{"class":110},[101,175,177,180,184,187,191,194],{"class":103,"line":176},7,[101,178,179],{"class":110},"  -storepass",[101,181,183],{"class":182},"szBVR"," \u003C",[101,185,186],{"class":126},"passwor",[101,188,190],{"class":189},"sVt8B","d",[101,192,193],{"class":182},">",[101,195,117],{"class":110},[101,197,199,202,204,206,208,210],{"class":103,"line":198},8,[101,200,201],{"class":110},"  -keypass",[101,203,183],{"class":182},[101,205,186],{"class":126},[101,207,190],{"class":189},[101,209,193],{"class":182},[101,211,117],{"class":110},[101,213,215,218],{"class":103,"line":214},9,[101,216,217],{"class":110},"  -dname",[101,219,220],{"class":126}," \"CN=YourName, OU=YourOrg, O=YourOrg, L=City, S=State, C=US\"\n",[20,222,223,224,227,228,231],{},"Замените ",[53,225,226],{},"\u003Cpassword>"," на надёжный пароль. Файл ",[53,229,230],{},"my-release-key.keystore"," сохраните в проекте (лучше вне репозитория). Этот ключ будет использоваться для всех релизных сборок.",[15,233,235],{"id":234},"шаг-2-настройте-конфигурацию-подписи-в-android-studio","Шаг 2: Настройте конфигурацию подписи в Android Studio",[237,238,239,246,256,270],"ol",{},[31,240,241,242,245],{},"В меню выберите ",[34,243,244],{},"Build → Generate Signed Bundle / APK",".",[31,247,248,249,252,253,245],{},"Выберите ",[34,250,251],{},"APK"," и нажмите ",[34,254,255],{},"Next",[31,257,258,259,262,263,265,266,269],{},"Если у вас уже есть конфигурация подписи, выберите её. В противном случае нажмите ",[34,260,261],{},"New"," и укажите ранее созданный Keystore (",[53,264,230],{},"), псевдоним (",[53,267,268],{},"mykey",") и пароли.",[31,271,272,273,275,276,245],{},"Нажмите ",[34,274,255],{},", затем ",[34,277,278],{},"Finish",[68,280,281],{},[20,282,283,284,287],{},"⚠️ ",[34,285,286],{},"Важно:"," Используйте одни и те же пароли для Keystore и ключа, иначе сборка завершится ошибкой.",[15,289,291],{"id":290},"шаг-3-сгенерируйте-подписанный-apk","Шаг 3: Сгенерируйте подписанный APK",[20,293,294],{},"После настройки Android Studio автоматически соберёт подписанный APK. Файл появится в папке:",[92,296,301],{"className":297,"code":299,"language":300},[298],"language-text","app/build/outputs/apk/release/app-release.apk\n","text",[53,302,299],{"__ignoreMap":97},[20,304,305],{},"Откройте эту папку, чтобы получить готовый к распространению APK.",[307,308],"in-article-ad",{},[15,310,312],{"id":311},"шаг-4-проверьте-подпись-apk","Шаг 4: Проверьте подпись APK",[20,314,315,316,318],{},"Убедитесь, что подпись корректна, с помощью ",[53,317,65],{},":",[92,320,322],{"className":94,"code":321,"language":96,"meta":97,"style":97},"apksigner verify app-release.apk\n",[53,323,324],{"__ignoreMap":97},[101,325,326,328,331],{"class":103,"line":104},[101,327,65],{"class":107},[101,329,330],{"class":126}," verify",[101,332,333],{"class":126}," app-release.apk\n",[20,335,336],{},"Корректный результат:",[92,338,341],{"className":339,"code":340,"language":300},[298],"Verified\nSigner #1 certificate DN: CN=YourName, OU=YourOrg, O=YourOrg, L=City, S=State, C=US\n...\n",[53,342,340],{"__ignoreMap":97},[20,344,345],{},"Если есть ошибки, исправьте Keystore или повторите процесс подписи.",[15,347,349],{"id":348},"шаг-5-подготовьте-и-отправьте-приложение-в-google-play","Шаг 5: Подготовьте и отправьте приложение в Google Play",[237,351,352,365,368,371],{},[31,353,354,355,358,359,358,362,245],{},"Перейдите в ",[34,356,357],{},"Google Play Console"," → ",[34,360,361],{},"Мои приложения",[34,363,364],{},"Создать приложение",[31,366,367],{},"Укажите название, описание и скриншоты.",[31,369,370],{},"Загрузите подписанный APK в раздел «Версии приложения» → «Добавить новую версию».",[31,372,373],{},"Следуйте инструкциям по заполнению метаданных, юридической информации и настройкам распространения.",[15,375,377],{"id":376},"проверка-результата","Проверка результата",[28,379,380,383,390],{},[31,381,382],{},"APK открывается на устройстве и устанавливается без ошибок.",[31,384,385,386,389],{},"В ",[34,387,388],{},"Play Console"," версия отмечена как «Подписанная» с указанным сертификатом.",[31,391,392],{},"Обновления будут корректно подписаны тем же ключом.",[15,394,396],{"id":395},"возможные-проблемы","Возможные проблемы",[28,398,399,408,414,423],{},[31,400,401,404,405,245],{},[34,402,403],{},"Not enough entropy"," при создании Keystore. Повторите команду из терминала с достаточным количеством случайных данных. На Windows можно использовать графический инструмент ",[53,406,407],{},"certmgr",[31,409,410,413],{},[34,411,412],{},"Key password incorrect"," при сборке. Проверьте, что пароли для Keystore и ключа совпадают.",[31,415,416,419,420,245],{},[34,417,418],{},"APK already signed"," при повторной подписи. Удалите старые подписи: ",[53,421,422],{},"apksigner sign --remove-all-signatures app-release.apk",[31,424,425,428],{},[34,426,427],{},"Invalid signature"," после проверки. Убедитесь, что Keystore не повреждён и пароль верен. При необходимости восстановите Keystore из резервной копии.",[430,431,432],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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":97,"searchDepth":120,"depth":120,"links":434},[435,436,437,438,439,440,441,442,443,444],{"id":17,"depth":120,"text":18},{"id":25,"depth":120,"text":26},{"id":79,"depth":120,"text":80},{"id":83,"depth":120,"text":84},{"id":234,"depth":120,"text":235},{"id":290,"depth":120,"text":291},{"id":311,"depth":120,"text":312},{"id":348,"depth":120,"text":349},{"id":376,"depth":120,"text":377},{"id":395,"depth":120,"text":396},null,"2026-08-09 08:21:00","Научитесь подписывать Android APK для распространения. Пошаговое руководство по созданию ключа, настройке Android Studio и проверке подписи приложения.","medium",false,"10-15 мин","md",[453,456,459,462],{"question":454,"answer":455},"Почему нужно подписывать Android-приложения?","Подпись подтверждает авторство и гарантирует целостность бинарного файла. Без подписи Google Play не позволит вам опубликовать приложение, а пользователи не смогут обновляться.",{"question":457,"answer":458},"Что такое Keystore и зачем его создавать?","Keystore — это файл, содержащий приватный ключ и связанный с ним сертификат. Он используется для подписи APK и должен храниться в безопасности.",{"question":460,"answer":461},"Как исправить ошибку «Not enough entropy» при создании ключа?","Запустите команду повторно из терминала с достаточным количеством случайных данных. На Windows используйте `certmgr`, на macOS/Linux — `keytool -genkeypair`.",{"question":463,"answer":464},"Что делать, если APK уже подписан другим ключом?","Сначала удалите старую подпись с помощью `apksigner sign --remove-all-signatures`. Затем создайте новую подписанную версию с использованием корректного ключа.",[466,469,472,475,478],{"name":467,"text":468},"Создайте подписной ключ (Keystore)","Откройте терминал и выполните команду для генерации ключа: `keytool -genkeypair -v -keystore my-release-key.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000 -storepass \u003Cpassword> -keypass \u003Cpassword> -dname \"CN=YourName, OU=YourOrg, O=YourOrg, L=City, S=State, C=US\"`. Сохраните файл в безопасном месте.",{"name":470,"text":471},"Настройте конфигурацию подписи в Android Studio","Выберите в меню **Build → Generate Signed Bundle / APK**. Выберите «APK» и нажмите «Next». Укажите существующую конфигурацию подписи или создайте новую, выбрав ранее созданный `my-release-key.keystore` и пароль, указанные при генерации.",{"name":473,"text":474},"Сгенерируйте подписанный APK","Завершите настройку, выбрав целевую директорию и название модуля. Нажмите «Build», и Android Studio соберёт подписанный APK. Файл будет находиться в `app/build/outputs/apk/release/`.",{"name":476,"text":477},"Проверьте подпись APK","Откройте терминал в папке с APK и выполните команду: `apksigner verify app-release.apk`. Если подписи корректны, вы увидите статус `Verified`. Это гарантирует, что файл не был изменён.",{"name":479,"text":480},"Подготовьте и отправьте приложение в Google Play","Переместите подписанный APK в панель разработчика Google Play → «Мои приложения» → «Создать приложение». Заполните метаданные, загрузите APK и следуйте инструкциям для публикации.","PT15M",[483,484,485,486,487,488,489,490,491,492],"как подписать apk android","создать подписной ключ android","подписать приложение android studio","debug keystore android","подписать apk для google play","генерация keystore ключа","настройка signing config android","проверить подпись apk","ошибка подписи android","android app signing guide","ru_RU",{},true,"/guides/android/app-signing","android",[499,500,501],"/guides/android/debug-build","/guides/android/upload-to-play-console","/errors/android/invalid-signature","Гайды Android",{"title":5,"description":447},"guides/android/app-signing","В этом руководстве вы узнаете, как создать подписной ключ, настроить конфигурацию подписи в Android Studio и подписать APK для выпуска в Google Play. После выполнения инструкции у вас будет корректно подписанное приложение, готовое к распространению.",[507,508,251,509,510,36],"Android","Signing","Google Play","Keystore","guide","BrygZRDCTNLfsv2vgyvBiEVJUjitx53autJkGbDJXCs",{"data":514,"body":515},{},{"type":516,"children":517},"root",[518],{"type":519,"tag":20,"props":520,"children":521},"element",{},[522],{"type":300,"value":455},{"data":524,"body":525},{},{"type":516,"children":526},[527],{"type":519,"tag":20,"props":528,"children":529},{},[530],{"type":300,"value":458},{"data":532,"body":533},{},{"type":516,"children":534},[535],{"type":519,"tag":20,"props":536,"children":537},{},[538,540,545,547,553],{"type":300,"value":539},"Запустите команду повторно из терминала с достаточным количеством случайных данных. На Windows используйте ",{"type":519,"tag":53,"props":541,"children":543},{"className":542},[],[544],{"type":300,"value":407},{"type":300,"value":546},", на macOS/Linux — ",{"type":519,"tag":53,"props":548,"children":550},{"className":549},[],[551],{"type":300,"value":552},"keytool -genkeypair",{"type":300,"value":245},{"data":555,"body":556},{},{"type":516,"children":557},[558],{"type":519,"tag":20,"props":559,"children":560},{},[561,563,569],{"type":300,"value":562},"Сначала удалите старую подпись с помощью ",{"type":519,"tag":53,"props":564,"children":566},{"className":565},[],[567],{"type":300,"value":568},"apksigner sign --remove-all-signatures",{"type":300,"value":570},". Затем создайте новую подписанную версию с использованием корректного ключа.",{"data":572,"body":573},{},{"type":516,"children":574},[575],{"type":519,"tag":20,"props":576,"children":577},{},[578,580,586],{"type":300,"value":579},"Откройте терминал и выполните команду для генерации ключа: ",{"type":519,"tag":53,"props":581,"children":583},{"className":582},[],[584],{"type":300,"value":585},"keytool -genkeypair -v -keystore my-release-key.keystore -alias mykey -keyalg RSA -keysize 2048 -validity 10000 -storepass \u003Cpassword> -keypass \u003Cpassword> -dname \"CN=YourName, OU=YourOrg, O=YourOrg, L=City, S=State, C=US\"",{"type":300,"value":587},". Сохраните файл в безопасном месте.",{"data":589,"body":590},{},{"type":516,"children":591},[592],{"type":519,"tag":20,"props":593,"children":594},{},[595,597,602,604,609],{"type":300,"value":596},"Выберите в меню ",{"type":519,"tag":34,"props":598,"children":599},{},[600],{"type":300,"value":601},"Build → Generate Signed Bundle / APK",{"type":300,"value":603},". Выберите «APK» и нажмите «Next». Укажите существующую конфигурацию подписи или создайте новую, выбрав ранее созданный ",{"type":519,"tag":53,"props":605,"children":607},{"className":606},[],[608],{"type":300,"value":230},{"type":300,"value":610}," и пароль, указанные при генерации.",{"data":612,"body":613},{},{"type":516,"children":614},[615],{"type":519,"tag":20,"props":616,"children":617},{},[618,620,626],{"type":300,"value":619},"Завершите настройку, выбрав целевую директорию и название модуля. Нажмите «Build», и Android Studio соберёт подписанный APK. Файл будет находиться в ",{"type":519,"tag":53,"props":621,"children":623},{"className":622},[],[624],{"type":300,"value":625},"app/build/outputs/apk/release/",{"type":300,"value":245},{"data":628,"body":629},{},{"type":516,"children":630},[631],{"type":519,"tag":20,"props":632,"children":633},{},[634,636,642,644,650],{"type":300,"value":635},"Откройте терминал в папке с APK и выполните команду: ",{"type":519,"tag":53,"props":637,"children":639},{"className":638},[],[640],{"type":300,"value":641},"apksigner verify app-release.apk",{"type":300,"value":643},". Если подписи корректны, вы увидите статус ",{"type":519,"tag":53,"props":645,"children":647},{"className":646},[],[648],{"type":300,"value":649},"Verified",{"type":300,"value":651},". Это гарантирует, что файл не был изменён.",{"data":653,"body":654},{},{"type":516,"children":655},[656],{"type":519,"tag":20,"props":657,"children":658},{},[659],{"type":300,"value":480},[]]