Logo Quiz icon

Documentation

Setup guide for Logo QuizVisuella

Android Signing Key

Before you can publish your app to the Google Play Store, you need to sign it with a private key. This is a one-time setup that the Setup Page walks you through — you don't need to know any technical commands by heart, and you never type your passwords into the browser.

What is a signing key?

A signing key (also called a keystore) is a small file that acts like a digital signature for your app. Every version of your app that you upload to Google Play is signed with this file, and Google uses it to prove that all the updates really come from you.

⚠️ Very important — do not lose this file

If you lose your signing key, you will never be able to publish updates to your app on Google Play, ever. Not Google, not Apple, not us — nobody can recover it for you. If it's lost, your only option would be to publish a brand-new app under a different name.

Once you've generated your key:

  • Back it up immediately — save copies to at least two safe places (an encrypted external drive, a password manager, a private cloud folder). One backup is not enough.
  • Write down the passwords you used and store them alongside the key file.
  • Never share the file or its passwords with anyone.

Step 1 — Open the Signing key page

Open the Setup Page in your browser and go to the Signing key section from the sidebar. Turn on Enable Android signing at the top.

The Signing key section of the Setup Page with Enable Android signing switched off and the fields hidden The Signing key section with Enable Android signing switched on, revealing the Generate a new keystore card

Step 2 — Fill in the "Generate a new keystore" card

The Setup Page will build a keystore-generation command for you as you type. Fill in the fields:

  • Key alias — a short label for the key. The default is upload and there's no reason to change it.
  • Store filename — leave as keystore.jks.
  • Common Name (CN) — your name or company name.
  • Organization (O) — your company name.
  • Organizational Unit (OU) — a department or product line, e.g. "Mobile Apps".
  • City / Locality (L) — the city you're based in.
  • State / Province (ST) — the state or province.
  • Country (C) — a two-letter country code (e.g. US, FR, DZ).
  • Validity (days) — how many days the key remains valid. Leave as 10000 (about 27 years). Google Play requires a validity of at least 25 years past your last planned release.

All the identity fields (CN, O, OU, L, ST, C) are optional and are baked into the key for record-keeping only. They don't have to be your legal identity, but the country code does show up on Google Play, so pick that one accurately.

As you fill in the fields, the Command box at the bottom of the card updates automatically.

The Generate a new keystore card filled in, with the keytool command built automatically in the Command box and a Copy button beside it

Step 3 — Run the command in a terminal

  1. Click the Copy button next to the Command box.
  2. Open a terminal and navigate into the android/app/ folder inside your project:
    bash
    cd path/to/your/project/android/app
  3. Paste the command and press Enter.

The command will then ask you, in the terminal, to:

  • Set a keystore password — pick a strong one and write it down.
  • Set a key password — you can press Enter to reuse the same password as the keystore. Most people do.
A terminal running the generated keytool command and prompting to enter a keystore password The full keytool run, answering the identity questions and ending with the keystore.jks file being stored

When it finishes, a file called keystore.jks will appear inside android/app/.

Why does the terminal ask for the passwords instead of the Setup Page? For safety. Passwords typed into the browser could leak through your shell's command history or into log files — running keytool directly in the terminal prompts securely and never records them.

Step 4 — Upload the keystore on the Setup Page

Back on the Setup Page, scroll down to the Keystore file card:

  • Drag and drop your newly generated keystore.jks onto the slot, or
  • Click the slot to open a file picker and select it.

The Setup Page copies your file to the correct place inside the project (android/app/keystore.jks). The card will then show it as Installed.

If you generated the file directly inside android/app/ in Step 3, it's already at the right location — the drop is mainly there for when you move the file back from a backup.

Step 5 — Enter your passwords in the "Signing key" fields

Still on the Signing key page, scroll down to the Signing key section and fill in:

  • Store password — the keystore password you set when running the command in the terminal.
  • Key password — the key password (usually the same as the store password if you pressed Enter to reuse it).
  • Key alias — the same alias you used in Step 2 (upload by default).

Click Save.

Step 6 — Run sync

As with every other setup step, run the sync command in your terminal from the project root:

bash
make sync

Your app is now ready to be built as a signed release version — see Publishing → Build & Publish.

Back up your key — really, do it now

Before moving on, make two backups of these three things:

  1. The keystore.jks file.
  2. The keystore password.
  3. The key password (if different from the keystore password).

Save each backup in a different secure location. This is the single most important file in your entire project — treat it like the deed to a house.

FAQ

Frequently asked questions

  • Where do I get the latest version of the app?
    On your CodeCanyon Downloads page, signed in with the account you bought the app with. Updates are free for life — see the Upgrade Code page for the safe way to move to a new version.
  • Do I need a Mac to publish on the App Store?
    Yes. Building an iOS `.ipa` file requires Xcode, which only runs on macOS. Android builds work on any operating system.
  • Why don't in-app purchases work when I install the APK on my phone?
    In-app purchases, Play Games and other Google Play services only unlock when the build is uploaded to a Play Console track (Internal testing is the fastest) and installed via the Play Store on a device signed in as a tester.
  • Do you provide the source code?
    Yes — every CodeCanyon purchase includes the full Flutter source code plus all assets, so you can customise anything.
  • Can I use the same license for two different apps?
    No. Envato's Regular License covers a single end product. If you want to publish a second app based on the same template, buy a second license on CodeCanyon.
  • How long does store review take?
    Google Play: a few days for the very first submission, then a few hours to a day for updates. Apple App Store: usually 24–48 hours per submission.