Skapa en keystore och signera AAB-filen
Generera en release-keystore med keytool, konfigurera gradle.properties och build.gradle med signeringskonfigurationen och bygg ett signerat Android App Bundle med EAS Build.
Skapa en keystore och signera AAB-filen är en gratis lektion i React Native Academy på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för React Native Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i React Native Academy innehåller totalt 4 lektioner.
Varför Android-signering är viktig
Alla Android-appar måste signeras digitalt med en privat nyckel innan de kan installeras eller distribueras. Signaturen bäddas in i APK- eller AAB-filen och verifierar att alla framtida uppdateringar av appen kommer från samma utvecklare. Om du förlorar din keystore kan du aldrig publicera en uppdatering av appen — du måste i stället publicera en helt ny app med ett annat paketnamn. Säkerhetskopiera din keystore-fil på ett säkert sätt.
Vad är en keystore-fil
En keystore är en binär fil (vanligtvis .jks eller .keystore) som lagrar ett eller flera kryptografiska nyckelpar. Den skyddas av två lösenord: ett store password (skyddar filen) och ett key password (skyddar det enskilda nyckelaliaset inuti filen). Tänk på den som ett lösenordsskyddat valv som innehåller din signeringsidentitet. Android använder en nyckel i detta valv för att signera din APK eller AAB.
APK eller AAB: vilket ska du använda
Google Play kräver nu Android App Bundles (AAB) för nya appar (sedan augusti 2021). En AAB är mindre än en APK eftersom den innehåller resurser för alla enhetskonfigurationer och låter Google Play skapa en enhetsspecifik APK för varje användare. Detta minskar nedladdningsstorleken med 15–50 %. Lokal testning och sidoladdning använder fortfarande APK-filer. Bygg en AAB för inskickning till Play Store och använd APK endast för direktinstallation eller intern testning utanför Play.
// eas.json — build AAB for production
{
'build': {
'production': {
'android': {
'buildType': 'app-bundle' // produces .aab
}
},
'preview': {
'android': {
'buildType': 'apk' // produces .apk for side-loading
}
}
}
}Generera en keystore med keytool
Javas verktyg keytool genererar keystores. De viktigaste parametrarna är: -genkeypair för att generera ett nytt nyckelpar, -keystore för filnamnet som ska skapas, -alias för nyckelaliaset (ett namn på nyckeln i keystoren), -validity för hur många dagar certifikatet är giltigt (25 år = 9125 dagar är vanligt vid appsignering), samt -keyalg RSA -keysize 2048 för den kryptografiska algoritmen.
# Generate a release keystore
keytool -genkeypair \
-keystore myapp-release-key.jks \
-alias myapp-key \
-keyalg RSA \
-keysize 2048 \
-validity 9125 \
-storepass yourStorePassword \
-keypass yourKeyPassword
# You'll be prompted for:
# First and last name:
# Organizational unit:
# Organization:
# City or locality:
# State or province:
# Two-letter country code (e.g., US):
# Then type 'yes' to confirmEAS-genererad keystore
EAS Build kan automatiskt generera och lagra en keystore åt dig på ett säkert sätt. När du kör en Android-produktionsbuild för första gången uppmanar EAS dig att generera en ny keystore eller ladda upp en befintlig. Om du låter EAS generera den lagras keystoren krypterad i EAS moln — du kan när som helst ladda ner den via eas credentials --platform android. Detta är det säkraste alternativet för team, eftersom ingen keystore finns på en enskild utvecklares dator.
# Let EAS generate and manage the keystore
eas build --platform android --profile production
# EAS prompts:
# ? Would you like to set up an Android Keystore?
# > Generate new keystore <- choose this
#
# EAS creates and stores it securely.
# Download your keystore for backup:
eas credentials --platform android
# Select: Download existing keystoreKonfigurera manuell signering i build.gradle
Om du använder ett fristående React Native-arbetsflöde (inte hanterad Expo) och vill signera lokalt i stället för med EAS konfigurerar du signeringen i android/app/build.gradle. Lägg till ett signingConfigs-block som hänvisar till din keystore-fil och dina lösenord. Lagra keystore-uppgifterna i ~/.gradle/gradle.properties (inte i källkoden) för att hålla dem borta från Gits historik.
// android/app/build.gradle
android {
signingConfigs {
release {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
}
// ~/.gradle/gradle.properties (NOT in git)
// MYAPP_UPLOAD_STORE_FILE=myapp-release-key.jks
// MYAPP_UPLOAD_STORE_PASSWORD=yourStorePassword
// MYAPP_UPLOAD_KEY_ALIAS=myapp-key
// MYAPP_UPLOAD_KEY_PASSWORD=yourKeyPasswordBygga den signerade AAB-filen med EAS
När autentiseringsuppgifterna är konfigurerade startar du Android-produktionsbuilden med EAS. Molnkörningen hämtar din kod, tillämpar konfigurationspluginer, bygger AAB-filen, signerar den med din keystore och gör den tillgänglig för nedladdning eller direktuppladdning till Play Console. Övervaka förloppet med eas build:list eller EAS-instrumentpanelen. Den färdiga AAB-filen är vanligtvis 5–20 MB beroende på appens storlek.
# Build signed AAB for Play Store
eas build --platform android --profile production
# Watch build progress (or use dashboard URL provided)
eas build:list --platform android --limit 5
# Download the .aab when complete
eas build:download --id <build-id>
# Alternatively: build AND auto-submit to Play Console
eas build --platform android --profile production --auto-submitPlay App Signing: förbättrad säkerhet
Google Play App Signing är ett program där Google förvarar en sekundär appsigneringsnyckel. Du laddar upp AAB-filen som signerats med din uppladdningsnyckel (en enklare nyckel som du genererar), och Google signerar den på nytt med den hanterade appsigneringsnyckeln innan den levereras till användarna. Fördelen är att Google kan utfärda en ny uppladdningsnyckel om din befintliga nyckel blir röjd eller försvinner. När du väl har registrerat dig kan du inte avregistrera dig, men det rekommenderas starkt för nya appar.
// Play App Signing flow:
// You sign with: Upload Key (your keystore)
// |
// v
// [Upload to Play Console]
// |
// Google re-signs with:
// App Signing Key
// |
// v
// Device receives: App signed by Google's key
// Enroll when creating app in Play Console:
// Setup > App Signing > Use Google-managed keyVerifiera AAB-signaturen
Innan du laddar upp appen till Play Console bör du verifiera att AAB-filen är korrekt signerad med bundletool eller apksigner. Kontrollera signeringscertifikatets SHA-256-fingeravtryck — det är detta fingeravtryck som Google Play förväntar sig. Om uppladdningscertifikatet inte överensstämmer med det som Play Console har registrerat avvisas uppladdningen med ett signeringsfel.
# Verify keystore details
keytool -list -v -keystore myapp-release-key.jks
# Shows: Certificate fingerprint (SHA-256):
# AB:CD:EF:... (copy this for your records)
# Check what signed an APK/AAB
apksigner verify --verbose myapp.apk
# Bundletool (download from Google)
bundletool dump manifest --bundle=myapp.aabSäkerhetskopiera keystoren
En säkerhetskopia av keystoren är avgörande — behandla den som ett lösenord eller en privat nyckel. Lagra den i: en lösenordshanterare som stöder filbilagor, en krypterad molnlagringsplats (inte samma Git-repo) och eventuellt en maskinvarubaserad säkerhetsenhet. Spara lagringslösenordet, nyckelaliaset och nyckellösenordet tillsammans med den. Om du förlorar keystoren kan du aldrig uppdatera appen — du måste publicera den under ett nytt paketnamn och förlorar alla befintliga användare och omdömen.
# Keystore backup checklist:
# 1. Store the .jks file in encrypted storage
# - 1Password, Bitwarden, or similar
# - Do NOT commit to git
# 2. Record credentials alongside it:
# Store file: myapp-release-key.jks
# Store password: [store securely]
# Key alias: myapp-key
# Key password: [store securely]
# 3. Test restoration:
# - Copy backup to a new machine
# - Run: keytool -list -keystore myapp-release-key.jks
# - Verify you can list the key alias
# 4. Tell your team where the backup livesVersionskod och versionsnamn
Android använder två versionsidentifierare: versionCode (ett heltal som måste ökas vid varje uppladdning till Play Store) och versionName (strängen som visas för användarna, till exempel '1.2.3'). Play Console avvisar en build om versionCode inte är strikt större än den senaste uppladdade builden. I Expo anger du android.versionCode i app.json och ökar värdet för varje ny build som laddas upp till Play.
// app.json
{
'expo': {
'version': '1.2.3', // versionName shown to users
'android': {
'versionCode': 12, // must be higher than previous upload
'package': 'com.yourcompany.myapp'
}
}
}
// After submitting to Play Console, before next build:
// Increment versionCode: 12 -> 13
// Update version if user-facing: '1.2.3' -> '1.2.4'
// EAS can auto-increment:
// eas.json: 'autoIncrement': true (in android profile)Snabbtest
Testa dina kunskaper om React Native Mobile Development-koncepten från den här lektionen.
Lektionssammanfattning
I den här lektionen har du lärt dig hur du genererar en Android-keystore med keytool eller EAS Build, skillnaden mellan APK och AAB och varför Play Store kräver AAB, samt hur du konfigurerar signering i build.gradle för projekt med fristående arbetsflöde. Du har också sett Google Play App Signing och varför det är absolut nödvändigt att säkerhetskopiera keystoren. Nästa steg är att konfigurera Play Console-listningen.
Lär dig JavaScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Skapa en keystore och signera AAB-filen” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen React Native Academy, inklusive ”Skapa en keystore och signera AAB-filen”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i React Native Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Skapa en keystore och signera AAB-filen”?
Generera en release-keystore med keytool, konfigurera gradle.properties och build.gradle med signeringskonfigurationen och bygg ett signerat Android App Bundle med EAS Build. Ni övar på React Native Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig React Native Academy?
Du behöver inga förkunskaper. Utbildningen i React Native Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”Skapa en keystore och signera AAB-filen”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här React Native Academy-lektionen?
Ja. Varje React Native Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Skapa en keystore och signera AAB-filen
- Konfigurera butikssidan i Play Console
- Innehållsklassificering, policyer och integritet
- Intern testning, stegvis lansering och produktion