Mobil Uygulama Yayınlama: App Store ve Google Play Rehberi
Mobil Uygulama Yayınlama Sürecine Genel Bakış
Mobil uygulama geliştirme sürecinin en heyecan verici ama aynı zamanda en detaylı aşamalarından biri, uygulamanızı mağazalarda yayınlamaktır. Hem Apple App Store hem de Google Play Store'un kendine özgü gereksinimleri, politikaları ve inceleme süreçleri vardır. Bu rehberde her iki platform için adım adım yayınlama sürecini, sık yapılan hataları ve profesyonel ipuçlarını ele alacağız.
Google Play Store'da Uygulama Yayınlama
1. Google Play Console Hesabı Oluşturma
Google Play'de uygulama yayınlamak için bir Google Play Console hesabına ihtiyacınız vardır. Hesap oluşturmak için tek seferlik 25 USD ücret ödemeniz gerekir. Kurumsal hesap açıyorsanız D-U-N-S numarası ve şirket doğrulama belgeleri istenebilir.
2. Uygulamayı İmzalama (App Signing)
Android uygulamalarının yayınlanmadan önce dijital olarak imzalanması zorunludur. Bunun için bir keystore dosyası oluşturmanız gerekir:
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
Bu keystore dosyasını asla kaybetmeyin. Kaybederseniz uygulamanızı güncelleyemezsiniz. Güvenli bir yerde yedekleyin. Ardından build.gradle dosyanızda imzalama yapılandırmasını tanımlayın:
android {
signingConfigs {
release {
storeFile file("my-release-key.jks")
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias "my-key-alias"
keyPassword System.getenv("KEY_PASSWORD")
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
Google Play App Signing özelliğini etkinleştirmeniz şiddetle tavsiye edilir. Bu sayede Google, imzalama anahtarınızı güvenli bir şekilde yönetir ve anahtarınızı kaybetseniz bile uygulamanızı güncellemeye devam edebilirsiniz.
3. Release Build Oluşturma
Yayın için AAB (Android App Bundle) formatını kullanmanız gerekir. Google Play artık APK yerine AAB formatını zorunlu kılmaktadır:
./gradlew bundleRelease
Oluşan dosya genellikle app/build/outputs/bundle/release/app-release.aab yolunda bulunur.
4. Mağaza Listesini Hazırlama
- Uygulama adı: Maksimum 30 karakter
- Kısa açıklama: Maksimum 80 karakter
- Uzun açıklama: Maksimum 4000 karakter
- Ekran görüntüleri: En az 2 adet, telefon ve tablet için ayrı ayrı
- Öne çıkan görsel: 1024x500 piksel
- Uygulama ikonu: 512x512 piksel, PNG formatında
- Gizlilik politikası URL'si: Zorunlu
5. Test Süreçleri
Google Play Console'da üç farklı test kanalı bulunur:
- Dahili test (Internal testing): Maksimum 100 test kullanıcısı, inceleme süreci yok, anında dağıtım
- Kapalı test (Closed testing): Belirli kullanıcı gruplarına dağıtım, kısa inceleme süreci
- Açık test (Open testing): Herkesin katılabileceği beta testi, tam inceleme süreci
Uygulamanızı önce dahili test kanalına yükleyerek hızlı geri bildirim alabilir, ardından kapalı ve açık test aşamalarına geçebilirsiniz.
6. İçerik Derecelendirme ve Uyum
Google Play Console'da içerik derecelendirme anketini doldurmanız zorunludur. IARC (International Age Rating Coalition) standartlarına göre uygulamanız otomatik olarak yaş sınıflandırması alır. Ayrıca uygulamanızın veri güvenliği bölümünü doldurarak hangi verileri topladığınızı ve nasıl kullandığınızı beyan etmeniz gerekir.
Apple App Store'da Uygulama Yayınlama
1. Apple Developer Hesabı
App Store'da yayınlamak için Apple Developer Program üyeliği gerekir. Yıllık ücreti 99 USD'dir. Kurumsal hesaplar için de D-U-N-S numarası zorunludur. Hesap onayı birkaç gün sürebilir.
2. Xcode ile Derleme ve İmzalama
iOS uygulamalarını yayınlamak için Xcode kullanmanız gerekir. Öncelikle App Store Connect'te uygulamanızı oluşturun, ardından Xcode'da imzalama ayarlarını yapılandırın:
- Bundle Identifier: Benzersiz bir tanımlayıcı (örn.
com.sirketadi.uygulamaadi) - Provisioning Profile: Distribution tipinde bir profil oluşturun
- Signing Certificate: Apple Distribution sertifikanızı kullanın
Xcode'da Automatically manage signing seçeneğini kullanarak bu süreçleri büyük ölçüde otomatikleştirebilirsiniz. Derleme için:
xcodebuild -workspace MyApp.xcworkspace -scheme MyApp -configuration Release -archivePath build/MyApp.xcarchive archive
xcodebuild -exportArchive -archivePath build/MyApp.xcarchive -exportPath build/output -exportOptionsPlist ExportOptions.plist
3. App Store Connect Yapılandırması
App Store Connect üzerinde doldurmanız gereken alanlar:
- Uygulama adı: Maksimum 30 karakter
- Alt başlık: Maksimum 30 karakter
- Açıklama: Maksimum 4000 karakter
- Anahtar kelimeler: Maksimum 100 karakter (virgülle ayrılmış)
- Ekran görüntüleri: Her cihaz boyutu için ayrı ayrı (6.7", 6.5", 5.5" vb.)
- Uygulama ikonu: 1024x1024 piksel, alfa kanalı olmadan
- Destek URL'si: Zorunlu
- Gizlilik politikası URL'si: Zorunlu
4. TestFlight ile Beta Test
TestFlight, Apple'ın resmi beta test platformudur. Dahili test için 25 kullanıcı, harici test için 10.000 kullanıcıya kadar destek sağlar. Harici testler Apple tarafından incelenir ve genellikle 24-48 saat sürer. TestFlight buildleri 90 gün boyunca aktif kalır.
5. App Review Süreci
Apple'ın inceleme süreci Google'a kıyasla çok daha titizdir. Ortalama inceleme süresi 24-48 saat olsa da bazı durumlarda daha uzun sürebilir. Sık yapılan ret nedenleri:
- Kilitlenme ve hatalar: Uygulama inceleme sırasında çökerse anında reddedilir
- Eksik meta veriler: Gizlilik politikası, demo hesap bilgileri gibi eksikler
- Guideline 4.3 - Spam: Benzer uygulamaların tekrar tekrar gönderilmesi
- Guideline 2.1 - Performans: Uygulamanın yeterli işlevsellik sunmaması
- Guideline 5.1.1 - Veri toplama: Gereksiz izin talepleri
Reddedilme durumunda Resolution Center üzerinden Apple ile iletişime geçerek sorunu çözebilir ve uygulamanızı yeniden gönderebilirsiniz.
CI/CD ile Otomatik Yayınlama
Profesyonel projelerde yayınlama sürecini otomatikleştirmek büyük zaman kazandırır. Fastlane bu iş için en popüler araçtır ve hem iOS hem Android'i destekler:
# Fastlane ile Android yayınlama
lane :deploy_android do
gradle(task: "bundleRelease")
upload_to_play_store(
track: "production",
aab: "app/build/outputs/bundle/release/app-release.aab"
)
end
# Fastlane ile iOS yayınlama
lane :deploy_ios do
build_app(
workspace: "MyApp.xcworkspace",
scheme: "MyApp",
export_method: "app-store"
)
upload_to_app_store(
skip_metadata: false,
skip_screenshots: true
)
end
GitHub Actions, GitLab CI veya Bitrise gibi CI/CD platformlarıyla Fastlane'i entegre ederek her commit veya tag'de otomatik derleme ve dağıtım yapabilirsiniz.
Her İki Platform İçin Ortak İpuçları
ASO (App Store Optimization)
- Uygulama adında ve açıklamasında hedef anahtar kelimeleri kullanın
- Ekran görüntülerini profesyonel ve açıklayıcı hazırlayın; ilk iki görüntü en kritik olanlardır
- Düzenli güncelleme yayınlayarak mağaza algoritmalarında üst sıralarda kalın
- Kullanıcı yorumlarına aktif olarak yanıt verin
Sürüm Yönetimi
Semantic Versioning kullanmanız önerilir. Sürüm numaranız MAJOR.MINOR.PATCH formatında olmalıdır. Ayrıca her iki platformda da kademeli yayın (staged rollout) özelliğini kullanarak güncellemeleri önce küçük bir kullanıcı grubuna sunabilir, sorun olmazsa genişletebilirsiniz. Google Play'de bu yüzdelik olarak ayarlanır, App Store'da ise Phased Release seçeneğiyle 7 gün boyunca kademeli dağıtım yapılır.
Gizlilik ve Veri Güvenliği
Her iki platform da uygulamaların topladığı verilerin şeffaf bir şekilde beyan edilmesini zorunlu kılmaktadır. Google Play'de Data Safety bölümünü, App Store'da ise App Privacy (nutrition labels) bölümünü eksiksiz doldurun. KVKK ve GDPR uyumluluğunu sağlayarak olası hukuki sorunların önüne geçin.
Sonuç
Mobil uygulama yayınlama süreci ilk seferde karmaşık görünebilir ancak sistematik bir yaklaşımla oldukça yönetilebilir hale gelir. Uygulamanızı yayınlamadan önce kapsamlı test yapın, mağaza listelerinizi özenle hazırlayın ve platform kurallarını dikkatle inceleyin. CI/CD araçlarını kullanarak sürecinizi otomatikleştirin ve kademeli yayın stratejileriyle riskleri minimize edin. Her iki platformun da geliştirici dokümantasyonlarını düzenli olarak takip ederek güncel gereksinimlere uyum sağlamayı unutmayın.