Google Play Uygulama İmzalama nasıl etkinleştirilir?


113

Pek çok geliştiricinin Google I / O 2017'de sunulan yeni Google Play Uygulama İmzalama özelliği hakkında daha fazla bilgi edinmeye çalıştığını düşünüyorum.

Google Play'de uygulamaları imzalamak için anahtar deposunu saklama yeteneği, anahtar deposunu güvenli bir şekilde saklama zahmetinden tasarruf etmenizi sağlar ve sistemin, donanım ve işletim sistemi özelliklerine göre her cihaza sunulan APK'ları optimize etmesine yardımcı olabilir.

Bu konu hakkında daha fazla bilgiyi buradaki resmi belgelerde okuyabilirsiniz: https://developer.android.com/studio/publish/app-signing.html#google-play-app-signing .

Aşağıdaki cevapla, orijinal anahtar deponuzu yüklemek için izlemeniz gereken adımları ve bu noktadan itibaren APK'nızı imzalamanız gereken yeni yükleme anahtar deposunu nasıl oluşturacağınızı biraz daha iyi açıklayacağım.

Yanıtlar:


189

Bu kılavuz, Play Store'da zaten bir uygulaması olan geliştiricilere yöneliktir. Eğer yeni bir uygulama çok daha kolay ve paragrafın yönergeleri takip edebilirsiniz var süreç ile başlayan edin "Yeni uygulamalar" Burada

Geliştiricilerin% 99'unun halihazırda sahip olduğu ön koşullar :

  1. Android Studio

  2. JDK 8 ve kurulumdan sonra, terminal komutlarını basitleştirmek için kullanıcı alanınızda bir ortam değişkeni kurmanız gerekir. : Windows bunu eklemem gerekiyor x64 C:\Program Files\Java\{JDK_VERSION}\biniçin Pathortam değişkeni. (Bunu nasıl yapacağınızı bilmiyorsanız , Windows 10 Pathortam değişkenine bir klasör eklemek için kılavuzumu okuyabilirsiniz ).

Adım 0 : Google Play geliştirici konsolunu açın, ardından Sürüm Yönetimi -> Uygulama İmzalama'ya gidin .

görüntü açıklamasını buraya girin

Uygulama İmzalama Hizmet Şartları'nı kabul edin.

görüntü açıklamasını buraya girin

Adım 1 : Aşağıdaki görselle aynı olan düğmeye tıklayarak PEPK Aracını indirin

görüntü açıklamasını buraya girin

Adım 2 : Bir terminal açın ve şunu yazın:

java -jar PATH_TO_PEPK --keystore = PATH_TO_KEYSTORE --alias = ALIAS_YOU_USE_TO_SIGN_APK --output = PATH_TO_OUTPUT_FILE --encryptionkey = GOOGLE_ENCRYPTION_KEY

Açıklama:

  • PATH_TO_PEPK = Adım 1'de indirdiğiniz pepk.jar yolu , C:\Users\YourName\Downloads\pepk.jarWindows kullanıcıları için olduğu gibi olabilir .
  • PATH_TO_KEYSTORE = Sürüm APK'nızı imzalamak için kullandığınız anahtar deposu yolu. * .Keystore veya * .jks türünde veya uzantısız bir dosya olabilir. Böyle bir şey C:\Android\mykeystoreya C:\Android\mykeystore.keystorevs ...
  • ALIAS_YOU_USE_TO_SIGN_APK = Sürüm APK'sını imzalamak için kullandığınız takma adın adı.
  • PATH_TO_OUTPUT_FILE = Çıktı dosyasının .pem uzantılı yolu, şunun gibiC:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY = Bu şifreleme anahtarı her zaman aynı olmalıdır. Bunu Uygulama İmzalama sayfasında bulabilir, kopyalayıp yapıştırabilirsiniz. Bu biçimde olmalı:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Misal:

java -jar "C: \ Kullanıcılar \ Adınız \ İndirilenler \ pepk.jar" --keystore = "C: \ Android \ mykeystore" --alias = myalias --output = "C: \ Android \ private_key.pem" - encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb933b65648b933b65648b

Enter'a basın ve sırayla sağlamanız gerekecek:

  1. Anahtar deposu şifresi
  2. Takma ad parolası

Her şey yolunda giderse, artık PATH_TO_OUTPUT_FILE klasöründe adında bir dosyanız olacak private_key.pem.

3. Adım : Aşağıdaki görselle aynı olan düğmeye tıklayarak private_key.pem dosyasını yükleyin

görüntü açıklamasını buraya girin

4. Adım : Android Studio'yu kullanarak yeni bir anahtar deposu dosyası oluşturun.

UYGULAMANIZIN SONRAKİ SÜRÜMLERİNİ İMZALAMAK İÇİN GELECEKTE BU ANAHTAR YERİNE İHTİYACINIZ OLACAK, ŞİFRELERİ UNUTMAYIN

Android projelerinizden birini açın (rastgele birini seçin). Git Build'a -> APK imzalı Üret ve basın Yeni oluştur .

görüntü açıklamasını buraya girin

Şimdi gerekli alanları doldurmalısınız.

Anahtar deposu yolu, oluşturacağınız yeni anahtar deposunu temsil eder, sağdaki 3 nokta simgesini kullanarak bir klasör ve bir ad seçin, seçtim C:\Android\upload_key.jks(.jks uzantısı otomatik olarak eklenecektir)

NOT: uploadYeni takma ad olarak kullandım , ancak daha önce farklı uygulamaları imzalamak için aynı anahtar deposunu farklı takma adlarla kullandıysanız, daha önce orijinal anahtar deposunda sahip olduğunuz takma adların aynısını seçmelisiniz.

görüntü açıklamasını buraya girin

Bittiğinde Tamam'a basın ve şimdi yeni bir upload_key.jksanahtar deponuz olacak. Android Studio'yu şimdi kapatabilirsiniz.

Adım 5 : Yükleme sertifikasını yeni oluşturulan upload_key.jksanahtar deposundan çıkarmamız gerekiyor. Bir terminal açın ve şunu yazın:

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS -dosya PATH_TO_OUTPUT_FILE

Açıklama:

  • UPLOAD_KEYSTORE_PATH = Yeni oluşturduğunuz yükleme anahtar deposunun yolu. Bu durumda oldu C:\Android\upload_key.jks.
  • UPLOAD_KEYSTORE_ALIAS = Yükleme anahtar deposu ile ilişkili yeni takma ad. Bu durumda oldu upload.
  • PATH_TO_OUTPUT_FILE = .pem uzantılı çıktı dosyasının yolu. Gibi bir şey C:\Android\upload_key_public_certificate.pem.

Misal:

keytool -export -rfc -keystore "C: \ Android \ upload_key.jks" -alias upload -file "C: \ Android \ upload_key_public_certificate.pem"

Enter tuşuna basın ve anahtar deposu şifresini girmeniz gerekecektir.

Şimdi her şey yolunda giderse, PATH_TO_OUTPUT_FILE adlı klasörde bir dosyanız olacak upload_key_public_certificate.pem.

6. Adım : upload_key_public_certificate.pemAşağıdaki görselle aynı olan düğmeye tıklayarak dosyayı yükleyin

görüntü açıklamasını buraya girin

Adım 7 : Uygulama İmzalama sayfasının sonundaki KAYDOL düğmesini tıklayın .

görüntü açıklamasını buraya girin

Artık her yeni sürüm APK'sı , Google Play Geliştirici konsoluna yüklenmeden önce 4. Adımdaupload_key.jks oluşturulan anahtar deposu ve takma adlarla imzalanmalıdır .

Daha fazla kaynak:

Soru-Cevap

S: Yeni upload_key anahtar deposu ile imzalanmış APK'yı yüklediğimde, Google Play şuna benzer bir hata gösteriyor: İmzasız bir APK yüklediniz. İmzalı bir APK oluşturmanız gerekiyor .

C: Sürüm APK'sını oluştururken APK'yi her iki imzayla (V1 ve V2) imzalamak için işaretleyin. Daha fazla ayrıntı için burayı okuyun .

GÜNCELLENMİŞ

Adım 4,5,6, mevcut uygulamalar için isteğe bağlı olan yükleme anahtarı oluşturmaktır

"Yükleme anahtarı (mevcut uygulamalar için isteğe bağlı): Programa kaydolurken oluşturduğunuz yeni bir anahtar. Play Console'a yüklemeden önce gelecekteki tüm APK'ları imzalamak için yükleme anahtarını kullanacaksınız." https://support.google.com/googleplay/android-developer/answer/7384423


3
İzlenecek yolun süper faydalıdır! Bunu resmi web sitesine
koymalılar

3
Tırnak işaretleri yalnızca yollarınızın içinde en az bir boşluk varsa gereklidir, ancak bu, her konsol komutunun çalışma şeklidir. Dolayısıyla, yolunuz şöyle ise tırnak işaretlerini kullanmanız gerekir: "C:\My Path\MyName"ama yol öyleyse değil C:\MyPath\MyName. Btw thank you :)
MatPag

1
@layth Yeni anahtar deposu oluşturmak Step 4kılavuzun bir
parçasıdır

1
Bunu yaptım ama yeni anahtar deposu iletişim kutusunu aldığımda anahtar deposu yolu ve şifre alanları boştu, bu yüzden onları eski anahtar deposunu gösterdim ve eski şifresini girdim - btw şu anda "keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS - PATH_TO_OUTPUT_FILE "dosyası, anahtar aracının ne anlama geldiğini bilmediğinden şikayet etmeye devam ediyor. "C: \ Program Files \ Java \ jdk1.8.0_25 \ bin \ keytool.exe" eklemeyi denedim, ancak muhtemelen tam olarak nereye koyacağımı bilmediğim için işe yaramadı ..
NukeouT

9
Görünüşe göre Google prosedürü değiştirdi çünkü artık PEPK Aracını bulamıyorum.
Andrea Motto

31

Bir dakika sürecek çok daha basit bir çözüm var.

  1. Google Play konsolunda Sürüm yönetimi -> Uygulama imzalama'yı seçin
  2. İlk seçeneği, Android Studio ile şifrelenmiş özel anahtar oluştur seçeneğini seçin (veya bunun gibi bir şey; artık o sayfayı görmek için geri dönemem)
  3. Android Studio'da, Android App Bundle'ınızı (.aap dosyası) Oluştur -> İmzalı Paket / APK Oluştur ... seçeneğinden oluşturun , Android App Bundle seçeneğini seçin ve Şifrelenmiş Anahtarı Dışa Aktar'ı işaretlemeyi unutmayın (uygulamanızı kaydetmek için gerekli Google Play Uygulaması imzalama) seçeneği. Oluşturulmuş bir anahtar deponuz yoksa, bir ad-hoc oluşturun.
  4. Şimdi "zor" kısım. .Aap oluşturulduktan sonra, Android Studio, .aap dosyasının kaydedildiği konuma giden yolu içeren sağ alt köşede bir bildirim açar. Aynı bildirimde, eğer onu genişletirseniz, özel anahtarın kaydedildiği yola giden başka bir bağlantı bulacaksınız ( private_key.pepk olarak adlandırılır ). Bu bildirimi kaçırırsanız endişelenmeyin, sağ alt taraftaki Olay Günlüğü düğmesine tıklayarak Olay Günlüğü penceresini açın ve aynı bilgileri bulacaksınız. Bu konumu açın.Benim için C: \ Users \ yourUser \ .android

görüntü açıklamasını buraya girin

  1. Tarayıcıya geri dönün ve APP SIGNING PRIVATE ANAHTAR düğmesine basın ve bilgisayarınızdaki özel anahtar konumuna göz atın.

Bitti!

Artık daha önce oluşturduğunuz sürümünüzü yükleyebilirsiniz :) İyi şanslar!


1
Bu en iyi ve daha basit cevap
Simon

Bana çok zaman kazandırdı ve daha da önemlisi
gönül rahatlığı sağladı

Bu seçeneği Şifrelenmiş Anahtarı Dışa Aktar (uygulamanızı Google Play Uygulama imzalamaya kaydettirmek için gereklidir) seçeneğini alamıyorum.
Jarvis

5. noktanın daha kapsamlı bir açıklamasını gerçekten takdir ediyorum - Bu düğmeyi görmüyorum, nerede, belki de son güncellemelerde düzen değişti?
androidneil

tamam güzel şimdi bir sonraki güncellemede ne yapacağımı merak ediyorum? tekrar .pepk anahtarına ihtiyacımız olması veya sürüm 2'yi aynı anahtarı veya yeni özel .pepk anahtarını kullanarak imzalamamız gerektiği gibi lütfen yardım edin
Sunil Chaudhary

15

Android uygulama paketi dosyasını (APK) Android App Bundle'a (AAB) taşırken, uygulamayı Play Store'da yayınlarken bu sorunla karşılaştım ve aşağıdaki gibi çözdüm ...

Oluştururken .aabdosyasını aşağıdaki gibi anahtar verme yolunu kaydedileceği konum sorulur olsun:

görüntü açıklamasını buraya girin
görüntü açıklamasını buraya girin İkinci görüntüde, .pepk dosyamızın .aab dosyası oluştururken belirli bir klasörde saklayacağı Şifreli anahtar verme yolu Konumunu bulacaksınız.

Play store kimlik bilgileriyle Google Play Console'a giriş yaptıktan sonra: projenizi sol taraftan seçin Uygulama İmzalama seçeneğini seçin Sürüm Yönetimi >> Uygulama İmzalama görüntü açıklamasını buraya girin

Google Uygulama İmzalama Sertifikası penceresini KABUL ET olarak göreceksiniz.

Bundan sonra üç radyo düğmesini seçin **

Android Studio radyo düğmesinden dışa aktarılan bir anahtarı yükleyin

**, aşağıdaki gibi APP İMZALAMA ÖZEL ANAHTAR düğmesini genişletecektir

görüntü açıklamasını buraya girin

butonuna tıklayın ve .pepkdosyayı seçin ( .aabYukarıdaki gibi dosya oluştururken sakladık )

Diğer tüm seçenekleri okuyun ve gönderin.

Başarılı bir şekilde uygulama sürümüne geri dönebilir ve .aab dosyasına göz atabilir ve RollOut'u tamamlayabilirsiniz ...

@Ambilpura


tamam güzel şimdi bir sonraki güncellemede ne yapacağımı merak ediyorum? tekrar .pepk anahtarına ihtiyacımız olması veya sürüm 2'yi aynı anahtarı veya yeni özel .pepk anahtarını kullanarak imzalamamız gerektiği gibi lütfen yardım edin
Sunil Chaudhary

Anladığım kadarıyla, bir dahaki sefere oluşturmaya gerek yok, eski .pepk anahtarını kullanabilirsiniz ....
Ambilpura Sunil Kumar

.Pepk'i güncelleme için nasıl kullanıyorsunuz? Uygulamamı yüklerken başarılı bir şekilde google uygulama imzalamayı kullandım, ancak şimdi bir güncelleme göndermeye çalışıyorum ve nasıl olduğunu bilmiyorum @AmbilpuraSunilKumar
nt95

Burada aynı. Abb'yi oyun mağazasına yükledim ve .pepk dosyasını tamamen görmezden geldim. Tam olarak neyin iyi olduğunu ve uygulamayı güncellerken ne yapılması gerektiğini bilmek güzel olurdu.
Julian Eggers

4

Aşağıdakileri yapmak zorundaydım:

  1. Google Play konsolunda bir uygulama oluşturun görüntü açıklamasını buraya girin

2. Uygulama sürümlerine gidin -> Üretimi yönetin -> Sürüm oluştur

3. Google Play Uygulama İmzalamaya devam et'i tıklayın görüntü açıklamasını buraya girin

4. "keytool -genkey -v -keystore c: \ path \ to \ cert.keystore -alias uploadKey -keyalg RSA -keysize 2048 -validity 10000" komutunu çalıştırarak yükleme sertifikası oluşturun

5. apk'nizi oluşturulan sertifika ile imzalayın (c: \ path \ to \ cert.keystore)

6. Uygulama sürümlerinde imzalı apk yükleyin -> Üretimi yönetin -> Sürümü düzenleyin

7. apk yükleyerek, 4. adımda oluşturulan sertifika Uygulama İmzalama sertifikalarına eklendi ve gelecekteki tüm derlemeler için imzalama sertifikanız oldu.


1
Tam olarak bunu yaptım, ancak uygulamayı Google Play Store aracılığıyla yüklersem uygulamamdan google oturum açma çalışmıyor. * Ama * eğer apk'yi sürüm yönetimi sayfasından indirir ve emülatörüme / cihazıma manuel olarak yüklersem çalışır. Ne kaçırdığım hakkında bir fikrin var mı?
Raghudevan Shankar

Yaklaşık 3 saat her yeri aradım ve sonunda beni kurtardın!
Oliver Dixon

3

Genel beta sürümleri için Fabric'i kullandığınızda (prod config ile imzalanmış), Google Play Uygulama İmzalamasını KULLANMAYIN . İki imzalı APK oluşturduktan sonra yapmalısınız!

Daha fazla oyun mağazasına (samsung, amazon, xiaomi, ...) dağıtım yaptığınızda, yeniden iki imzalı APK oluşturmanız gerekir.

Google Play Uygulama İmzalama konusunda gerçekten dikkatli olun.

Bunu geri almak mümkün değil: / ve Google Play, üretim anahtarıyla imzalanan apks'i kabul ettikten sonra bunu yapmadı. Google Play Uygulama İmzalama etkinleştirildikten sonra yalnızca yükleme anahtarı kabul edilir ...

CI dağıtımını gerçekten zorlaştırıyor ...

Yükseltmeyle ilgili sonraki sorunlar: https://issuetracker.google.com/issues/69285256


1
Cesur sermaye DON'T USEtürü yorumlar tehlikelidir. Sorunu ve önerilen çözümü ayrıntılı olarak açıklar mısınız? Hiç bir çözüm yok mu? Fabric için iki kez APK imzalamak çok mu zor?
Gökhan Arık

1
APK'yi iki kez imzalamak o kadar da zor değil, ancak açıkladığım gibi, aynı olmayan iki (veya daha fazla) APK oluşturmanız gerekiyor (bu nedenle, Play Store'da yayınlanandan farklı bir Fabric Beta dosyası test ediyorsunuz). Beta test cihazlarında üretim derlemesini test etmenin gevşek bir noktası ... başka bir dosyayı test ediyorsunuz :). Bu sadece karmaşık CI / CD'ye sahip insanlar için onu değiştirmeleri gerektiğine dair bir uyarı ...
mtrakal

2
Google Play'in artık Uygulama imzalamaya kaydolduktan sonra bile üretim anahtarıyla imzalanmış APK'ları kabul ettiğini unutmayın.
Pierre

2

Aşağıdakileri yapın :

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button

Bundan sonra, uygulama satın alma ve oyun hizmetlerinde eskisi gibi test edebilir miyim? Bununla ilgili herhangi bir deneyiminiz oldu mu? Çünkü ben bile ağır adımlar atmayı sevmiyorum.
Siddharth

1
" Google Play Uygulama İmzalama Nasıl Etkinleştirilir " için pek uygun bir cevap değil ...
Ben Madsen

2
Ve bunu yapmanın uygun bir yolu olarak ne önerirsiniz?
Sterling Diaz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.