Skip to content
Manifesto

How to sign an APK on Android

Published Nov 9, 2026 · 5 min read · Steps checked against Manifesto 1.0

You can sign an APK on Android in Manifesto: long-press the file, tap Sign, choose the signature schemes and a key, and tap Sign. V1, V2 and V3 are on by default. The catch: a re-signed APK can't install over an app signed with a different key, so uninstall the original first.

How do I sign an APK on my phone?

Signing an APK in Manifesto takes one dialog. The labels below match Manifesto's APK editor for Android.

  1. Long-press the .apk in the file manager, or tap it and then Options.
  2. Tap Sign. For an .apks, .xapk or .apkm set, tap Sign set, which signs every APK in the set.
  3. Under Signature schemes, toggle V1, V2, V3 and V4. V1 to V3 are on by default.
  4. Under Signing identity, choose Debug key or My keystore.
  5. For My keystore, pick the key, then fill in Key alias and Keystore password. If the key has its own password, turn on Different key password and fill in Key password.
  6. Tap Sign.

Manifesto signs with apksig 8.13.2 and verifies the result before it saves it. The output is written next to the original as <name>-signed.apk (or <name>-signed.apks and so on for a set). Your original file is left as it was.

Which signature schemes should I turn on?

APK signature schemes are versions of how Android checks an APK. The Android APK signing documentation describes each one:

SchemeIntroducedWhat it does
V1Original schemeJAR signing. Signs individual entries, not the whole file.
V2Android 7.0Signs the whole APK, so any change to the file breaks it. Faster to verify.
V3Android 9Like V2, plus support for rotating to a new signing key.
V4Android 11Stored in a separate .idsig file, used for ADB incremental installs. Needs V2 or V3.

The default of V1, V2 and V3 covers devices from old Android versions to current ones. Keep it unless you have a reason to change it:

  • Turn V1 off only if the app will never run on Android 6.0 or older. Those versions only check V1.
  • Turn V4 on if you install with adb install --incremental. Manifesto writes the .idsig file next to the APK. If V2 and V3 are both off, it shows "V4 requires V2 or V3."

Debug key or my own keystore?

Manifesto gives you two signing identities, and the right one depends on how long you'll keep the app:

  • Debug key: ready with no setup. It's fine for a quick test on your own device. The debug key ships inside Manifesto, so anyone can recover it. Never use it for an app you distribute.
  • My keystore: your own key. Use it for anything you share or want to update later, because every update must be signed with the same key.

Manifesto reads keystores from the Manifesto/Signing Keys folder. It accepts .p12, .pfx, .jks and .keystore files, loaded as PKCS12, JKS or BKS. If the list says "No keys in Manifesto/Signing Keys", copy your keystore there or create one.

How do I create a signing key on Android?

Manifesto's Signing keys screen generates a PKCS#12 key on the device:

  1. Open the drawer and tap Signing Key.
  2. Tap New key. The Create signing key dialog opens.
  3. Fill in Key file name, Alias and Password (at least 6 characters), then Confirm password.
  4. Choose an Algorithm: RSA 2048, RSA 4096 or EC P-256.
  5. Optionally turn on Certificate details to set a common name, organisation, country code and validity.
  6. Tap Create. The key is saved as a .p12 file in Manifesto/Signing Keys.

Back up the key file and its password somewhere safe. If you lose them, you can't sign updates that install over your app.

Why won't my re-signed app install over the original?

Android only accepts an update when it's signed with the same certificate as the installed app. Once you re-sign an APK with the debug key or your own keystore, its signature no longer matches the original developer's. Installing it over the original fails with a signature conflict.

To install it, uninstall the original app first. That deletes the app's data on the device, so back up anything you need. Later updates from the original source won't install over your re-signed copy either, for the same reason.

What about APKs I edited in Manifesto?

Manifesto signs its own builds automatically. When you tap Build and sign in an APK project, the output <name>-modified-signed.apk is signed with the debug key. To ship it with your own key, run Sign on that file and choose My keystore. To make the edits in the first place, follow how to edit an APK on Android. The build and sign docs cover the project build, and how to decompile an APK on Android covers reading the code.

App bundles need a step first. Manifesto offers no Sign action for an .aab: use Convert to APK, as in converting AAB to APK on Android.

Only re-sign apps you own or are allowed to modify. Re-signing is not a way to get around licence checks or paid features.

Frequently asked questions

Can I sign an APK on Android without a computer?

Yes. Manifesto signs APKs on the phone with apksig. Long-press the APK, tap Sign, pick the signature schemes and a key, and tap Sign. The signed copy is saved next to the original as name-signed.apk.

Is it safe to use the debug key?

The debug key is fine for testing on your own device, but not for anything you share. Manifesto's debug key ships inside the app, so anyone can recover it and a signature made with it doesn't identify you. Create your own key for real use.

Can I use my existing .jks keystore?

Yes. Copy the .jks file into the Manifesto/Signing Keys folder, then choose My keystore in the Sign dialog. Manifesto also reads .p12, .pfx and .keystore files. Enter the key alias and keystore password, plus the key password if it's different.

Why do I get a signature conflict when installing a re-signed APK?

Android rejects an update signed with a different key than the installed app. A re-signed APK no longer has the original developer's signature, so you must uninstall the original app first. Uninstalling removes its data on the device.

Do I need V4 signing?

Most people don't. The V4 scheme is used for ADB incremental installs on Android 11 and newer, and it writes a separate .idsig file. Manifesto turns on V1, V2 and V3 by default, which covers normal installs.

Related guides and docs