Every app needs its own signing key. For a full understanding of how Android app signing works, see the official Android documentation.Generate a keystore for your app:
Replace my-app-name with your app’s name.Store the keystore file and passwords securely — losing them means you cannot update your app. All future updates must be signed with the same key.
If your app is also published on Google Play, you must use a separate signing key for the dApp Store. You cannot reuse the same key for both stores.
Publishing multiple apps?
Each app should have its own signing key. You can keep things organized by storing multiple key aliases in a single keystore file:
Then reference the appropriate -alias when signing each app.
Expo
Native Android
PWA
By default, EAS builds an Android App Bundle (.aab). The dApp Store requires an APK instead.For signing, EAS can automatically generate and manage a keystore for you on your first build. Alternatively, you can provide your own keystore created with the instructions above.
Before building, specify the languages your app supports. By default, Bubblewrap incorrectly declares support for all locales.In the generated Android project, edit build.gradle:
build.gradle
Report incorrect code
Copy
Ask AI
android { defaultConfig { ... resConfigs "en" // Add any locales your app supports }}
Digital Asset Links (DAL) establish a connection between your website and the Android app. Without this, the app will show Chrome browser UI instead of a full-screen experience.
1
Generate the SHA256 fingerprint from your keystore:
Report incorrect code
Copy
Ask AI
keytool -list -v -keystore android.keystore
2
Add the fingerprint to your TWA manifest:
Report incorrect code
Copy
Ask AI
bubblewrap fingerprint add <SHA256_fingerprint>
3
Generate the assetlinks.json file:
Report incorrect code
Copy
Ask AI
bubblewrap fingerprint generateAssetLinks
4
Publish the generated assetlinks.json at:https://your-domain.com/.well-known/assetlinks.json