Bagaimana saya bisa membuat keystore?

538

Apa langkah-langkah untuk membuat keystore untuk android?

Saya perlu menggunakan peta google di aplikasi saya dan saya tidak tahu langkah apa yang saya lewatkan. Tolong beri saya langkah-langkah terperinci khusus (saya tidak memahaminya dari panduan).

pengguna482762
sumber
Sudahkah Anda melakukan sesuatu, atau Anda mencari rekomendasi untuk memulai?
atk
2
Itulah langkah-langkah berikut yang telah saya lakukan: 1-install eclipse 2- install jdk 3- install sdk 4- install android plugin saya tidak berhasil menjalankan perintah di win cmd, perintah: $ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048-validitas 10000 (yang menghasilkan kunci pribadi). terima kasih
user482762
@ user482762: apakah jawaban CommonsWare bekerja untuk Anda? Mengapa Anda tidak berhasil menjalankan win cmd?
atk
Jawaban CommonsWare tidak berfungsi untuk saya, Ketika saya mencoba menjalankan perintah di cmd, saya mendapatkan pesan kesalahan: "$ tidak dikenali sebagai perintah internal atau eksternal, program yang dapat dijalankan atau file batch". terima kasih atas bantuan Anda
user482762
Ah! Anda tidak ingin benar-benar mengetik $. Pada Windows, ketika Anda menggunakan baris perintah (aplikasi cmd), prompt input biasanya terlihat seperti DRIVE: / DIRECTORY>, seperti "c: \". Pada unix, prompt sering terlihat seperti "$" atau hanya ">". "$" Dalam perintah dimaksudkan untuk mewakili prompt input, bukan bagian dari perintah. Coba jalankan keytool dengan semua argumen, tanpa $.
atk

Jawaban:

545

Untuk menjawab pertanyaan dalam judul, Anda membuat keystore dengan utilitas Java Keytool yang dilengkapi dengan distribusi JDK standar dan dapat ditemukan di %JAVA_HOME%\bin. Pada Windows ini biasanya C:\Program Files\Java\jre7\bin.

Jadi pada Windows, buka jendela perintah dan pindah ke direktori itu dan masukkan perintah seperti ini

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Keytool meminta Anda untuk memberikan kata sandi untuk keystore, memberikan bidang Distinguished Name dan kemudian kata sandi untuk kunci Anda. Itu kemudian menghasilkan keystore sebagai file yang disebut my-release-key.keystore di direktori tempat Anda berada. Keystore dan kunci dilindungi oleh kata sandi yang Anda masukkan. Keystore berisi satu kunci, berlaku untuk 10.000 hari. Alias ​​adalah nama yang Anda - akan gunakan nanti, untuk merujuk keystore ini ketika menandatangani aplikasi Anda.

Untuk informasi lebih lanjut tentang Keytool, lihat dokumentasi di: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

dan untuk informasi lebih lanjut tentang penandatanganan aplikasi Android buka di sini: http://developer.android.com/tools/publishing/app-signing.html

georgiecasey
sumber
6
Teriakan yang bagus untuk mendefinisikan -keysize 2048 daripada default 1024 secara pribadi saya sekarang menggunakan 4096
scottyab
9
untuk informasi, dalam kasus saya, saya perlu membuka jendela perintah dengan hak admin
Intuitisoft
Ini memberi saya: E / TokenRequestor: Anda memiliki konfigurasi terkait OAuth2 yang salah, silakan periksa. Kesalahan terperinci: UNREGISTERED_ON_API_CONSOLE Saya sudah membuat kredensial dengan memasukkan SHA1 saya di konsol API.
Rohan Taneja
Tautan langsung ke dokumentasi tentang pembuatan secara manual keystore: developer.android.com/studio/publish/...
methodsignature
Saya telah menggunakan perintah ini yang menetapkan 2 password sehingga Anda melewatkan beberapa petunjuk: keytool -genkey -v -keystore debug.keystore -storepass android -alias android -keypass android -keyalg RSA -keysize 2048 -validity 10000. Kemudian untuk menghasilkan SHA-1 yang perlu Anda masukkan ke Firebase, lakukan:keytool -list -v -keystore debug.keystore -alias android -storepass android -keypass android
Albert Vila Calvo
158

Menandatangani Aplikasi Anda di Android Studio

Untuk masuk aplikasi Anda dalam mode rilis di Android Studio, ikuti langkah-langkah ini:

1- Pada bilah menu, klik Bangun> Hasilkan APK yang Ditandatangani.


2-Pada jendela Wisaya Signed APK APK, klik Buat baru untuk membuat keystore baru. Jika Anda sudah memiliki keystore, lanjutkan ke langkah 4.


3- Pada jendela New Key Store, berikan informasi yang diperlukan seperti yang ditunjukkan pada gambar. Kunci Anda harus valid setidaknya selama 25 tahun, sehingga Anda dapat menandatangani pembaruan aplikasi dengan kunci yang sama melalui masa pakai aplikasi Anda.

masukkan deskripsi gambar di sini

4 - Pada jendela Generate Signed APK Wizard, pilih keystore, kunci pribadi, dan masukkan kata sandi untuk keduanya. Kemudian klik Next.masukkan deskripsi gambar di sini

5- Di jendela berikutnya, pilih tujuan untuk APK yang ditandatangani dan klik Selesai. masukkan deskripsi gambar di sini

referensi

http://developer.android.com/tools/publishing/app-signing.html

android_developer
sumber
2
Meskipun jawaban ini benar, akan lebih mudah jika Anda sudah menginstal Android Studio.
Seph Reed
98

Saya gila mencari cara membuat .keystore menggunakan di shell perintah baris tunggal , jadi saya bisa menjalankannya dari aplikasi lain. Begini caranya:

echo y | keytool -genkeypair -dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" -alias business -keypass kpi135 -keystore /working/android.keystore -storepass ab987c -validity 20000
  • dname adalah pengidentifikasi unik untuk aplikasi di .keystore

    • cn nama lengkap orang atau organisasi yang menghasilkan .keystore
    • ou Unit Organisasi yang menciptakan proyek, yang merupakan bagian dari Organisasi yang menciptakannya. Ex. android.google.com
    • o Pemilik organisasi dari seluruh proyek. Ini ruang lingkup yang lebih tinggi daripada ou . Mis .: google.com
    • c Kode pendek negara. Mis: Amerika Serikat adalah "AS"
  • alias Pengenal aplikasi sebagai entitas tunggal di dalam .keystore (dapat memiliki banyak)

  • keypass Password untuk melindungi yang alias tertentu.
  • keystore Path tempat file .keystore dibuat (ekstensi standar sebenarnya .ks)
  • storepass Password untuk melindungi seluruh konten .keystore .
  • validitas Setiap hari aplikasi akan valid dengan .keystore ini

Ini bekerja sangat baik untuk saya, tidak meminta hal lain di konsol, hanya membuat file. Untuk informasi lebih lanjut lihat keytool - Alat Manajemen Kunci dan Sertifikat .

EliuX
sumber
Saya belum pernah mengalami kesalahan seperti itu tetapi coba lakukan sentuhan /path/file.keystoredan arahkan itu dengan parameter penyimpanan.
EliuX
bekerja hebat! satu-satunya perubahan saya adalah saya menggunakan ekstensi .jks untuk Android
Adam Mendoza
2
jksadalah ekstensi keystore resmi untuk java secara umum, namun keystoreadalah yang direkomendasikan untuk digunakan untuk aplikasi android sebagai gantinya.
EliuX
1
@eliasbagley itu karena perintah -storepass seperti yang ditulis di atas dimulai pada baris lain. Tulis semuanya dalam satu baris dan itu akan baik-baik saja.
tormuto
82

Buat file keystore dari baris perintah:

  1. Baris perintah terbuka:

    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved
    
    // (if you want to store keystore file at C:/ open command line with RUN AS ADMINISTRATOR)
    
    C:\Windows\system32> keytool -genkey -v -keystore [your keystore file path]{C:/index.keystore} -alias [your_alias_name]{index} -keyalg RSA -keysize 2048 -validity 10000[in days]
  2. Enter> Ini akan meminta Anda untuk kata sandi> masukkan kata sandi (itu tidak akan terlihat)

    Enter keystore password:
    Re-enter new password:
  3. Enter> Ini akan menanyakan detail Anda.

    What is your first and last name?
     [Unknown]:  {AB} // [Your Name / Name of Signer] 
    What is the name of your organizational unit?
     [Unknown]:  {Self} // [Your Unit Name] 
    What is the name of your organization?
     [Unknown]:  {Self} // [Your Organization Name] 
    What is the name of your City or Locality?
     [Unknown]:  {INDORE} // [Your City Name] 
    What is the name of your State or Province?
     [Unknown]:  {MP} //[Your State] 
    What is the two-letter country code for this unit?
     [Unknown]:  91
  4. Enter> Enter Y

    Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
    [no]:  Y
  5. Masukkan> Masukkan kata sandi lagi.

    Generating 2,048 bit RSA key pair and self-signed certificate    (SHA256withRSA) with a validity of 10,000 days
        for: CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91
    Enter key password for <index> (RETURN if same as keystore password):
    Re-enter new password:

[Menyimpan C: /index.keystore]

  1. Dan kamu DILAKUKAN !!!

Ekspor Dalam Gerhana:

Ekspor paket android Anda ke .apk dengan file keystore yang Anda buat

  1. Klik kanan pada Paket yang ingin Anda ekspor dan pilih ekspor masukkan deskripsi gambar di sini

  2. Pilih Ekspor Aplikasi Android> Selanjutnya masukkan deskripsi gambar di sini

  3. Lanjut
    masukkan deskripsi gambar di sini

  4. Pilih Gunakan Keystore Yang Ada> Jelajahi file .keystore> masukkan kata sandi> Selanjutnya masukkan deskripsi gambar di sini

  5. Pilih Alias> masukkan kata sandi> Selanjutnya masukkan deskripsi gambar di sini

  6. Jelajahi APK Tujuan> Selesai masukkan deskripsi gambar di sini

Di Android Studio:

Buat keystore [.keystore/.jks]di studio ...

  1. Klik Bangun (ALT + B) > Buat APK yang Ditandatangani ...
    masukkan deskripsi gambar di sini

  2. Klik Buat baru .. (ALT + C)
    masukkan deskripsi gambar di sini

  3. Jelajahi jalur penyimpanan kunci (SHIFT + ENTER)> Pilih Jalur> Masukkan nama> OK masukkan deskripsi gambar di sini

  4. Isi detail tentang .jks/keystorefile Andamasukkan deskripsi gambar di sini

  5. Lanjut
    masukkan deskripsi gambar di sini

  6. File Anda
    masukkan deskripsi gambar di sini

  7. Masukkan Kata Sandi Studio Master (Anda dapat RESET jika Anda tidak tahu) > OK masukkan deskripsi gambar di sini

  8. Pilih * Folder Tujuan *> Jenis Pembuatan

    release : for publish on app store
    debug : for debugging your application

    Klik Selesai

    masukkan deskripsi gambar di sini

Selesai !!!

Iamat8
sumber
28

Tutorial ini:

http://techdroid.kbeanie.com/2010/02/sign-your-android-applications-for.html

sangat membantu bagi saya pertama kali saya harus membuat keystore. Ini sederhana tetapi instruksi pada developer.android.com agak terlalu singkat.

Bagian yang saya tidak yakin tentang tempat menyimpan dan nama apa yang memberikan file keystore .

Saya tampaknya tidak masalah di mana Anda meletakkannya, pastikan untuk tetap aman dan menyimpan sejumlah cadangan. Saya hanya memasukkannya ke direktori aplikasi saya

Beri nama file "something.keystore" di mana sesuatu dapat menjadi apa pun yang Anda inginkan. Saya menggunakan app_name.keystore , di mana app_name adalah nama aplikasi saya.

Bagian selanjutnya adalah apa nama alias itu. Sekali lagi sepertinya tidak masalah jadi sekali lagi saya hanya menggunakan app_name lagi. Biarkan kata sandi sama dengan yang Anda gunakan sebelumnya. Isi bidang lainnya dan Anda selesai.

birdman
sumber
13

Saya mengikuti panduan ini untuk membuat debug keystore.

Perintahnya adalah:

keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999
Davide Pastore
sumber
11

Gunakan perintah ini untuk membuat debug.keystore

keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"
Aravin
sumber
5

Hal pertama yang perlu diketahui adalah apakah Anda dalam mode Debug atau Release. Dari situs pengembang "Ada dua mode build: mode debug dan mode rilis. Anda menggunakan mode debug ketika Anda mengembangkan dan menguji aplikasi Anda. Anda menggunakan mode rilis ketika Anda ingin membangun versi rilis aplikasi Anda yang dapat Anda distribusikan secara langsung kepada pengguna atau menerbitkan di pasar aplikasi seperti Google Play. "

Jika Anda berada dalam mode debug, lakukan hal berikut ...
A. Buka terminal dan ketik:

keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v

Catatan: Untuk Eclipse, debug keystore biasanya terletak di ~ / .android / debug.keystore ...

B. saat diminta kata sandi, cukup masukkan "android" ...

C. Jika Anda dalam mode Rilis, ikuti instruksi pada ...

http://developer.android.com/tools/publishing/app-signing.html <- tautan ini menjelaskan banyak hal yang perlu Anda ketahui.

ShowLove
sumber
2

Anda dapat membuat keystore dengan mengekspor APK yang ditandatangani. Ketika Anda akan mencoba untuk mengekspor / membangun APK yang ditandatangani, ia akan meminta keystore.

Anda dapat memilih keystore yang ada atau Anda dapat dengan mudah membuat yang baru dengan mengklik create new keystore

Di sini tautan sangat berguna dan dijelaskan dengan baik tentang cara membuat keystore Anda dan menghasilkan APK yang ditandatangani

Tautan ini menjelaskan cara melakukannya dengan Android Studio, tetapi jika saya ingat, ini sangat mirip dengan Eclipse

AWAS

Setelah Anda membuat keystore, simpan di tempat yang aman karena Anda akan membutuhkannya untuk membuat ulang APK yang baru ditandatangani.

Bagaimana cara mengekspor proyek di studio Android?

Hugo
sumber
2

Saya ingin menyarankan cara otomatis hanya dengan gradle

** Tentukan juga setidaknya satu param tambahan untuk keystore di perintah terakhir mis. Negara '-dname', 'c=RU'**

apply plugin: 'com.android.application'

// define here sign properties
def sPassword = 'storePassword_here'
def kAlias = 'keyAlias_here'
def kPassword = 'keyPassword_here'

android {
    ...
    signingConfigs {
        release {
            storeFile file("keystore/release.jks")
            storePassword sPassword
            keyAlias kAlias
            keyPassword kPassword
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            shrinkResources true
            minifyEnabled true
            useProguard true
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    ...
}

...

task generateKeystore() {
    exec {
        workingDir projectDir
        commandLine 'mkdir', '-p', 'keystore'
    }
    exec {
        workingDir projectDir
        commandLine 'rm', '-f', 'keystore/release.jks'
    }
    exec {
        workingDir projectDir
        commandLine 'keytool', '-genkey', '-noprompt', '-keystore', 'keystore/release.jks',
            '-alias', kAlias, '-storepass', sPassword, '-keypass', kPassword, '-dname', 'c=RU',
            '-keyalg', 'RSA', '-keysize', '2048', '-validity', '10000'
    }
}

project.afterEvaluate {
    preBuild.dependsOn generateKeystore
}

Ini akan menghasilkan keystore pada sinkronisasi dan pembangunan proyek

> Task :app:generateKeystore UP-TO-DATE
> Task :app:preBuild UP-TO-DATE
Vlad
sumber
-4

Jika Anda tidak ingin atau tidak dapat menggunakan Android Studio, Anda dapat menggunakan alat NPM create-android-keystore:

$ create-android-keystore quick

Yang menghasilkan keystore yang baru dibuat di direktori saat ini.

Info lebih lanjut: https://www.npmjs.com/package/create-android-keystore

Kaspi
sumber