Uygulama yayımlamak, yerel mağazalardan Google Play e
Uygulama yayımlamak arka arkaya beş iş demektir: yayım sürümünü derlemek, onu imzalamak, bir mağazada listelemek, incelemeyi geçmek ve ardından kullanıcılara sürmek. Bu beşin içinde imzalama, ters giderse telafisi olmayan aşamadır; çünkü imza anahtarı olmadan aynı uygulama için hiçbir yeni güncelleme kabul edilmez.
- Ders 7 / 8
- Orta
- Ücretsiz, kayıt yok
Yayımlamanın beş durağı ve geri dönüşü olmayanı
Bunlardan dördü yeniden yürünebilir. İkincisi yürünemez.
-
1
Yayım sürümünü derle
Loglama kapalı, hata ayıklama kapalı, sürüm bilgisi ayarlı.
-
2
İmzala
İmza anahtarı uygulamanın kimliğidir. Kaybı o uygulamanın güncellemelerini bitirir.
-
3
Mağazada listele
Başlık, açıklama, ekran görüntüleri ve simge. Hepsinin bir kopyası sizde kalsın.
-
4
Mağaza incelemesi
Her mağazanın kuralları kendine aittir ve haber verilmeden değişir.
-
5
Kullanıcılara sür
Bundan sonra her değişiklik yeni bir sürümdür ve sürüm kodu ilerlemelidir.
Sıra her zaman budur, süre değil: mağaza incelemesi saatler ya da günler alabilir ve buna bir sayı vermiyoruz.
Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.
Uygulama yayımlamak tam olarak neyi kapsar?
Android belgeleri işin tamamını iki yarıya bölüyor ve bu bölünme planlamak için yeterli: uygulamayı yayıma hazırlamak, sonra kullanıcılara ulaştırmak.
İlk yarı, hiçbiri yaratıcı olmayan ve her biri bir kez unutulan mekanik işlerden oluşur. Loglama kapatılıp kaldırılmalı, yayım varyantında hata ayıklama bayrağı kapalı olmalı, sürüm bilgisi ayarlanmalı, sonra yayım derlemesi yapılıp imzalanmalıdır. Belgeler ayrıca yayım sürümünü dağıtmadan önce en az bir gerçek telefonda ve bir tablette denemeniz gerektiğini ve uygulamanın bağlı olduğu sunucu ve hizmetlerin üretime hazır olması gerektiğini vurgular.
İkinci yarı dağıtım yolunu seçmektir. Android belgeleri üçünü yan yana koyar: bir mağaza üzerinden, kendi sitenizde ya da uygulamayı doğrudan bir kullanıcıya göndererek. Ve herhangi bir uygulama mağazası üzerinden dağıtabileceğinizi, birden çok mağaza kullanabileceğinizi açıkça yazar. İranlı bir ürün için bu cümle önemsiz değil, çünkü mağaza seçiminin bir sonraki kararın aksine geri alınabilir ve toplanabilir olduğu anlamına gelir.
İş sırasını değiştiren bir teknik nokta: Google, Ağustos 2021 den beri yeni uygulamaları APK dosyası olarak değil yalnızca App Bundle olarak kabul ediyor. Android belgeleri App Bundle in bir yayımlama biçimi olduğunu ve bir cihaza kurulamayacağını açıklıyor; APK leri ondan mağaza üretiyor. İki biçim arasındaki fark uygulama nasıl çalışır yazısında açılıyor. İran mağazaları hâlâ APK ile çalışıyor, dolayısıyla iki yolu da istiyorsanız ilk günden tek projeden iki çıktıyı da üretmeniz gerekir.

İmza anahtarı neden projedeki en önemli dosyadır?
Android hiçbir uygulamayı dijital imza olmadan kurmaz ya da güncellemez. Bu imza uygulamanın kimlik kartı gibidir: işletim sistemi onunla yeni sürümün gerçekten öncekini yapandan geldiğini bilir.
Ve bu dersten ezberlenmeye değer tek cümle burada. Android belgeleri, Play App Signing e katılmamış uygulamalar için, uygulamanızın imza anahtarını kaybederseniz uygulamayı güncelleme yeteneğinizi kaybedeceğinizi yazıyor. Yedek yok, kurtarma yok, idari bir süreç yok; uygulama bin telefonda kalır ve sonrasında sonsuza kadar yalnızca başka bir paket adıyla yeni bir uygulama yayımlayabilirsiniz.
Google Play tam bu yüzden iki anahtarı ayırdı. Biri, Google un kendisinin tuttuğu ve kullanıcılara ulaşan derlemeleri imzaladığı uygulama imza anahtarı; diğeri sizde kalan ve yalnızca dosyayı Console a göndermek için kullanılan yükleme anahtarı. Yükleme anahtarı kaybolursa sıfırlama istenebilir. Aynı belgeler, bu yapılandırmadan sonra uygulama imza anahtarınızın bir kopyasını geri alamayacağınız konusunda uyarıyor.
Özellikle İranlı bir ürün için önemli olan ve genelde geç anlaşılan bir karar: aynı imza anahtarının birkaç mağazada çalışmasını istiyorsanız, belgeler Play App Signing i yapılandırırken Google un sizin için bir anahtar üretmesi yerine kendi anahtarınızı vermeniz gerektiğini söylüyor. Önce yerel bir mağazada yayımlayıp sonra Google Play e giden biri, aksi hâlde tek bir uygulamanın iki farklı kimlik taşıyan iki sürümüyle kalır.
Pratikte: ilk gün imza anahtarını ve parolasını dizüstünün kaybını atlatacak bir yere koyun ve orası kod deposu olmasın. Projede parayla ve zamanla yerine konamayan tek dosya odur.
İmza anahtarını kurtaran dört kural
-
Kod deposunun dışında
Anahtar ve parolası, depo özel olsa bile kodun yaşadığı yerde yaşamamalı.
-
İki farklı yerde iki kopya
Dizüstündeki bir tane yetmez. Dizüstüler kaybolur ve anahtar da onunla gider.
-
Birden fazla kişinin erişimi var
Parolayı yalnızca bir kişi biliyorsa proje o tek kişiye bağlanmıştır.
-
Bütün mağazalar için tek anahtar
Mağazalar arasında tek anahtar istiyorsanız üretilmiş bir anahtarı değil kendinizinkini vermelisiniz.
Bu dördü düzenli bir yedeklemenin yerini tutmaz; yalnızca anahtarın en sık kaybedilme yollarını kapatır.
İrandan Google Play: Google un kendi tablosu ne diyor?
Bu bölümü herhangi bir yorum yerine tek bir resmî sayfadan yazıyoruz ve aynı şeyi kendiniz yapabilesiniz diye okuma yöntemini de veriyoruz.
Google un geliştirici ve satıcı kaydı için desteklenen konumlar adında bir sayfası var; üç sütunlu bir tablo: geliştirici kaydını destekler, satıcı kaydını destekler ve varsayılan para birimi. Bu sayfayı bugün okuduk ve saydık. Tabloda 214 ülke satırı var ve geliştirici kaydı sütununda 214 ünün hepsi işaretli.
Yalnızca saymanın ortaya çıkardığı şey: tablonun üstündeki açıklama ilk sütun için hem onay hem de ret işareti tanımlıyor, ama tablonun bugünkü hâlinde tek bir ret işareti bile yok. Yani bu, durumu değerlendirilmiş yerlerin listesi değil; desteklenen yerlerin listesi. Ve İran onda yok, ne onaylı ne retli. Karşılaştırma için, Irak, Afganistan ve Türkiye nin üçünün de satırı var.
Söylediğimiz bu kadar. Hiçbir yol yok demiyoruz, çünkü bu tablo yolların yokluğu hakkında bir şey söylemedi; bir dolanma yolu da önermiyoruz, çünkü o ne öğretmektir ne de bizim yaptığımız bir şey. Biri size bir yol olduğunu söylerse ölçüt şudur: o yol Google hesabının kurallarıyla tutarlı mı, yoksa yalnızca fark edilene kadar mı çalışıyor.
Ülkeyle ilgisi olmayan, herkesi yakalayan ve tarihi olan bir teknik kısıt daha var. Android belgeleri, 31 Ağustos 2026 dan itibaren yeni uygulamaların ve güncellemelerin Google Play e sunulabilmesi için Android 16 yı, yani API düzeyi 36 veya üstünü hedeflemesi gerektiğini, mevcut uygulamaların ise yeni kullanıcılara açık kalmak için en az Android 15 i hedeflemesi gerektiğini söylüyor. Aynı sayfa, güncellemek için daha fazla zamana ihtiyacınız olursa 1 Kasım 2026 ya kadar uzatma isteyebileceğinizi belirtiyor. Bu sayılar her yıl değişir, o yüzden bu sayfadaki doğrulama tarihine bakın; geçtiyse o sayfayı kendiniz açın.
Cafe Bazaar ve Myket: neyi doğrulayabildik, neyi doğrulayamadık
Hedef kitlesi İran içinde olan bir Android uygulaması için Cafe Bazaar ve Myket, kullanıcının gerçekten kurduğu iki yer. Burada kurallarına dair bir şey yazmamış olmamız bir eksiklik değil bir karar ve gerekçesi bugünkü kendi ölçümümüz.
Her iki geliştirici sitesini de bu sunucudan çağırdık. Sonuç şu oldu: hiçbiri kurallarının metnini düz bir HTTP isteğine vermiyor. İkisi de içeriğini sonradan tarayıcıda JavaScript in kurduğu boş bir sayfa gönderiyor. Yani o kurallar, arşivler ve denetim araçları dahil, grafik tarayıcısı olmayan hiçbir okuyucu için fiilen mevcut değil.
Bu yüzden kurallarından tek bir satır aktarmıyoruz; onu kaynağından okuduğumuzu iddia edemeyiz. Güvenle söyleyebileceğimiz iki şey var: iki mağaza da bir Android uygulamasını APK olarak kabul ediyor ve Android belgelerinin kendisinin yazdığı gibi, birkaç mağazada aynı anda yayımlamak olağan ve engelsiz bir iş. Gerisini o iki sitede bir tarayıcıyla kendiniz görmelisiniz; tavsiyemiz baktığınız tarihi bir yere not etmeniz, çünkü mağaza kuralları haber verilmeden değişir.
Buradan çıkan ve hiçbir mağazaya bağlı olmayan pratik bir nokta: bir mağazaya gönderdiğiniz her şey, başlıktan ve açıklamadan görsellere kadar, kendinize ait bir yerde durmalı. İkinci mağaza aynı şeyleri ister ve o gün onları yeniden yazacak hâlde olmazsınız.
Mağaza mı web mi?
Ürünün çalışmak için telefon donanımına ya da bildirimlere ihtiyacı var mı?
İlerici web uygulaması
- İmza yok, mağaza incelemesi yok, onay beklemek yok
- Telefon ve masaüstü için tek kod tabanı
- Mağazasız olarak ana ekrana kurulur
- Mağaza aramasında bulunmaz
Mağaza uygulaması
- Yukarıdaki aynı beş durak, ikincisinde imzayla
- Cihaz yeteneklerine tam erişim
- Mağazanın içinde görülür ve aranır
- Her güncelleme yeniden incelemeden geçer
Bu soru kaliteyle değil, kullanıcınızın sizi nerede aradığıyla ilgili. İki sütun da ciddi ürünler kurar.
Mağazaya hiç uğramayan yol
Ürününüz listeler, formlar, siparişler ve bir panelse ve telefon donanımıyla özel bir işi yoksa, bu dersin tamamını atlayan dördüncü bir yol var: aynı ürünü bir ilerici web uygulaması olarak yayımlayın.
Mozilla belgeleri bunu sade tanımlıyor: web platformu teknolojileriyle kurulan, platforma özgü bir uygulama gibi bir deneyim sunan, tek bir kod tabanından birçok platformda çalışan, kurulabilen ve çevrimdışı ile arka planda çalışabilen bir uygulama. Kullanıcı için bu, telefonun ana ekranında bir simge demek; sizin içinse imza yok, mağaza incelemesi yok, onay beklemek yok.
Buradaki tavrımız açık, çünkü bunu söylemek uygulama satan birinin işine gelmez: "bir uygulama" diye başlayan projelerin büyük bir kısmı pratikte mağaza uygulaması değil iyi kurulmuş bir web sitesi ister. Ürünün yaptığı her şey bir tarayıcıdan yapılabiliyorsa, mağaza yalnızca bir maliyet ve gecikme katmanı eklemiştir. Site kurucu mu özel tasarım mı aynı soruya web tarafından bakıyor.
Ve bu yanıtın nerede yanlış olduğunu dürüstçe söyleyelim. Güvenilir ve sürekli bildirime ihtiyacınız varsa, Bluetooth ya da belirli sensörlerle çalışıyorsanız, uygulama içi ödeme istiyorsanız ya da kitleniz uygulamayı bir mağazada arayarak buluyorsa, web uygulaması yetmez ve yukarıdaki beş aşamayı yürümeniz gerekir. İki yol arasındaki karar teknik değildir; kullanıcınızın sizi nerede aradığına bağlıdır. Bu karar ekibiniz için ağırsa, RGB uygulama sayfasında hangisini neye dayanarak önerdiğimizi yazdık.
Yükle e basmadan önce
- Sürüm kodu önceki yayımdan yüksek
- Bu derlemede hata ayıklama bayrağı kapalı
- Tam bu dosya gerçek bir telefonda ve tablette denendi
- Uygulamanın konuştuğu sunucu ve hizmetler üretime hazır
- Hedef API düzeyi o mağazanın bugünkü şartıyla uyumlu
Bunlar henüz yükleme demektir
- İmza anahtarı yalnızca tek bir makinede
- Anahtar parolası kod deposunda yazılı
- Mağaza metni ve görselleri yalnızca mağaza panelinde
- Mağaza şartını hafızadan ya da bir makaleden aldınız
Yapay zekayla hızlı yol
Asıl zaman yiyen aşama ne derleme ne de imzalamadır; mağazanın sizden istediği şeydir: açıklama, sürüm notları ve birkaç dilde. Modeller tam da bunda iyidir, aşağıda yazılı tek bir şartla; ve o şart, bu tarifi sıradan bir istemden ayıran şeydir.
- Bu sürümdeki değişikliklerin listesini olduğu gibi alın, ham ve teknik olsa bile. Bu girdidir ve onu kendiniz düzenlemeniz beklenmiyor.
- Mağazanın şartlar sayfasını bugün kendiniz açın ve metnini o listenin yanına koyun. Aşağıdaki tarifin bir şartı alıntılamasına izin verilen tek kaynak odur.
- Tarifi kompakt aileden hızlı ve ucuz bir modelle çalıştırın. Bu, muhakeme değil çeviri ve özetleme işidir; pahalı model burada yalnızca maliyettir. Şu anki tercihimiz sitenin yapay zekâ bölümünde.
- Çıktıyı değişiklik listesiyle karşılaştırın ve listede olmayan bir şey söyleyen her cümleyi silin. O derlemede olmayan bir yeteneği vaat eden bir sürüm notu, en kötü hata türüdür; çünkü kodda değildir.
Kopyalamaya hazır şablon
Bu, uygulamamın yeni sürümünün değişiklik listesi; ham ve teknik:
{değişiklik listesi, olduğu gibi}
Ve bu, bugün kendim açtığım mağaza şartları sayfasının metni:
{şartlar sayfasının metni}
Bana üç şey ver:
1) {dil listesi} dillerinde sürüm notları, dil başına en fazla {sayı} karakter. Sade bir ton, kendini övme yok. Her satır yukarıdaki listedeki bir satıra dayanmalı.
2) Aynı dillerde mağaza açıklaması, iki sürüm hâlinde: kısa bir paragraf ve daha uzun bir metin.
3) Yüklemeden önce denetlenecek mekanik işlerin listesi, yalnızca ve kesinlikle yukarıda verdiğim şartlar metnine dayanarak.
Katı kurallar:
- Değişiklik listesinde olmayan hiçbir yetenek yazma. Bir satır belirsizse tahmin etme, onu "belirsiz" adlı ayrı bir listeye koy.
- Hiçbir mağaza şartını kendi bilginden yazma. Yalnızca yukarıda verdiğim metinden alıntıla ve bir şey o metinde yoksa "verilen metinde yok" yaz.
- Kendinden hiçbir tarih, işletim sistemi sürüm numarası, yüzde ve fiyat ekleme.
- Karşılığı değişiklik listesinde olmadıkça hız, güvenlik ya da kalite hakkında hiçbir iddiada bulunma.
Çıktıya güvenmeden önce: Yüklemeden önce kendinizin denetlemesi gereken ve hiçbir modelin sizin yerinize yapamayacağı iki şey var. Birincisi, "belirsiz" listesini okuyun; boş dönerse model muhtemelen işaretlemek yerine tahmin etmiştir ve aynı tarifi yeniden göndermelisiniz. İkincisi, çıktıdaki her şartı hafızanızla değil, kendi açtığınız mağaza sayfasıyla karşılaştırın. Mağaza kuralları haber verilmeden değişir ve bir modelin geçen yıl doğru olan bir şeyi kendinden emin söyleyeceği yer tam burasıdır.
Bu işte yapay zeka
Yayımlamada yapay zekâ yardımı tam olarak bir yerde faydalı, bir yerde tehlikelidir ve ikisi yan yanadır. Metinde faydalı: mağaza açıklaması, sürüm notları ve çevirileri. Kurallarda tehlikeli: bir modelin bir mağaza politikası hakkında söylediği her cümle, o sayfanın metnini önüne kendiniz koymadıysanız bir tahmindir.
Gerçekten işe yarayan araçlar
- Gemini Yukarıdaki metin ve çok dilli çeviri geçişi için uygun maliyetli; orada pahalı model yalnızca maliyettir. Google ın kendi sayfası Gemini web uygulamasının 230 dan fazla ülke ve bölgede çalıştığını söylüyor ve İran o listede yok.
- Claude Şartlar sayfasının metnini önüne koyup yalnızca ondan alıntılamasını istediğinizde bu kısıta daha iyi bağlı kalıyor. İran, Anthropic in desteklenen ülkeler listelerinin hiçbirinde yok. Bunu ölçerek değil, Anthropic in kendi sayfasında okuyarak biliyoruz.
- Claude Code Yükleme öncesi mekanik geçiş için projenin kendisinde işe yarar: derleme yapılandırmasını okumak ve hata ayıklama bayrağının hâlâ açık olduğu yerleri bulmak. Aynı Anthropic hesabı üzerinde çalışır ve İran listede yok.
Nerede geri teper
Buradaki risk, bilmeye benzediği için kolayca geçen özel bir halüsinasyon türü. Mağaza politikaları sık değişir ve bir model, hedef API düzeyinden hangi biçimin kabul edildiğine kadar onların geçen yılki hâlini tam bir güvenle söyler. Android belgelerinin kendisi örneği taşıyor: API düzeyi şartının bir tarihi var ve tam bu yıl değişti. Kural basit ve istisnasız; hiçbir mağaza şartını bir model çıktısından almayın. Sayfasını açın, metnini modelin önüne koyun ve ondan yalnızca o metni düzenlemesini isteyin.
İkinci risk daha küçük ama daha pahalı: hiçbir aracın imza anahtarını ya da parolasını görmesine izin vermeyin. İmza anahtarı değiştirebileceğiniz sıradan bir parola değildir; sızarsa ya da kaybolursa o uygulamanın güncellemeleri temelli biter ve hiçbir hizmet bunu sizin için telafi edemez.
Kaynaklar: Android Developers: sign your app and Play App Signing Android Developers: target API level requirements for Google Play Anthropic: supported countries Google: where Gemini Apps are available
Bu tavsiyenin sınırı
İran içinden Google Play e bir uygulama yayımlamadık ve bu ders böyle bir iddiada bulunmuyor. Mağaza tarafı hakkında söylenen her şey onların kendi sayfalarının okunmasıdır: Android ve Google Play sayfalarını bugün okuduk ve saydık; iki İran mağazasının sayfalarını okuduk ve metinlerini alamadık, bunu da söyledik. Üç şey bilerek yok: herhangi bir mağazanın kayıt maliyeti, bir incelemenin ne kadar sürdüğü ve kendi kuralları ve araçları olan Apple App Store yolu. Ve burada asla olmayacak bir şey: herhangi bir mağaza kısıtını dolanmanın yolu.
Kendi işimizden
Bu dersin mağazalar hakkında söylediği iki şeyi bugün bu sunucudan ölçtük ve ikisi de tek bir komutla tekrarlanır. Birincisi, Google Play desteklenen konumlar sayfası: tablosunu alıp saydık, 214 ülke satırı, geliştirici kaydı sütununda 214 ünün hepsi işaretli ve Iran dizgisi tüm sayfada sıfır kez geçiyorken Iraq geçiyor. İkincisi, iki İran geliştirici sitesi: developers.cafebazaar.ir istediğimiz her yol için, ana sayfadan /fa/guidelines ve /docs a kadar, okunabilir tek metni Loading kelimesi olan tıpatıp aynı 4243 baytlık sayfayı döndürdü ve robots.txt i sıfır bayt; developer.myket.ir ise okunabilir tek metni Myket geliştirici panelinin başlığı olan 17703 baytlık bir sayfa döndürüyor ve aynı sayfayı bir robots.txt isteğine de veriyor. Bu yüzden bu derste kurallarından tek bir satır alıntılanmadı: istemediğimizden değil, kaynağında okunabilir olmadığından.
Gerçek devam soruları
Yerel bir mağazada ve Google Play de yayımlamak için iki ayrı uygulama gerekir mi?
Hayır, iki çıktısı olan tek bir proje. Google Play yeni uygulamalar için App Bundle istiyor, yerel mağazalar APK alıyor ve ikisi de tek bir kod tabanından derleniyor. Aynı kalması gereken şey imza anahtarı ve bu da yalnızca baştan kendi anahtarınızı verdiyseniz.
İmza anahtarını kaybedersek gerçekten geri dönüş yok mu?
Hangi anahtar olduğuna bağlı. Android belgeleri, Play App Signing e katılmamış uygulamalar için uygulama imza anahtarını kaybetmenin güncelleme yeteneğini kaybetmek demek olduğunu söylüyor. Play App Signing açıksa ve yalnızca yükleme anahtarı kaybolduysa sıfırlama istenebilir. Diğer mağazalar için koşullar kendilerine aittir ve onlara sormanız gerekir.
İlerici bir web uygulaması mağazalarda da listelenebilir mi?
Koşullar mağazadan mağazaya değişir ve İran mağazaları için bunu denetlemedik, dolayısıyla bu konuda bir iddiada bulunmuyoruz. Emin olduğumuz şey, bir web uygulamasının kullanıcıya ulaşmak için mağazaya hiç ihtiyacı olmadığı: kullanıcı onu sitenin kendisinden telefonun ana ekranına kuruyor.