Flutter ile Mağazalara Uygulama Göndermek(AppStore — PlayStore)
Merhaba arkadaşlar, NetworkUpp(ios/android) uygulamamla hem AppStore hem de PlayStore’a yayınlama sürecinden geçtim. Store bazında genel adımları kendim için not etmem gerektiğini düşündüm ve tecrübelerimi sizinle paylaşmak istedim.
Flutter Projesi Yaratma
Terminal üzerinden bir uygulama oluşturacağım ve geliştirici hesaplarımla bu uygulamayı yayınlayacağım. Muhtemelen şu anda çalışan uygulamanızı benimle birlikte yayınlamak isteyeceksiniz. Benzer adımları uygulayarak siz de uygulamalarınızı yayınlayabilirsiniz. Ancak Push Notification veya Background Tasks gibi bazı bağımlılıklarınız varsa, IOS için bazı gereklilikleri(Capabilities) etkinleştirmeniz gerekecek.
flutter create repo_explorer
Bu arada, GitHub Repository Explorer uygulamasını geliştirmeyi düşünüyorum, bu yüzden repo_explorer olarak adlandırdım. Bunu geliştirdikten sonra yeni sürümün nasıl yayınlanacağı anlatan yeni bir yazı oluşturebilirim.
Flutter projemi açtım ve AppStore ile başlayalım.
Uygulamanıza uygulama icon’u eklemek için ya appicon.co sitesinden iconunuz oluşturtup porjenize manuel olarak ekleyebilirsiniz yada flutter_launcher_icons paketini kullanabiliriz.Eğer splash page diye adlandırdığımız sayfadan eklemek istersenizde flutter_native_splash paketini kullanabilirisiniz ( SplashPage uygulama açılırken beklenen sürede kullanıcıya gösterilen sayfa gibi düşünebilirisiniz.).
App Store’a Yayınlama — iOS
İlk olarak, bir uygulamayı AppStore’da yayınlamak için Apple Geliştirici Programına kaydolmanız gerekir
Apple Geliştirici Programına kaydolduğunuzu varsayıyorum. Eğer yanılıyorsam, AppStore adımını geçebilirsiniz çünkü Apple Geliştirici programına kaydolamdan AppleStore’a uygulama atamazsınız.
Her iOS uygulaması eşsiz benzersiz bir Bundle ID ile ilişkilidir, bunu en kolay şekilde ayarlamak için flutter projemizin içindeki Runner.xcworkspace dosyasını Xcode ile açarak başlıyalım.
repo_explorer/ios/Runner.xcworkspace
Apple Geliştirici Hesabı ile giriş yaptığımızdan emin olmalıyız. Eğer giriş yapmadıysanız Xcode tercihlerinden yapabilirsiniz
Kayıtlı hesabınız aşağıdaki listede yoksa artı simgesiyle eklemeniz gerekir
Artık Xcode’da hesabımız listeleniyor. Projenizdeki Runner’a tıklayın ve Signing & Capabilities tabına geçin. Burada otomatik imzalama kısmının işaretli olduğundan emin olun ve bundle ID’yi değiştirin. Ben com.onatcipli.repoExplorer olarak değiştirdim
Bundle ID’yi değiştirmenize rağmen developer.apple.com içerisindeki Identifiers bölümünde görünmüyorsa panik yapmayın normaldir,çünkü daha oluşturmadık, Bundle ID’yi oluşurmak için iki seçeneğimiz var
İlk seçenek (bu benim favorim), Xcode’a rastgele bir özellik ekleyebilir ve kaldırabilirsiniz. Bu aksiyon, bundle ID’yi oluşturmak için Xcode’u tetikler. Aşağıdaki resimde görebileceğiniz gibi, İsim bölümünde Xcode tarafından XC eklenmiş
İkinci seçenek, developer.apple.com üzerindeki Identifier bölümünden artı simgesiyle manuel olarak eklemektir.
App Store Connect
Şimdi bir Uygulama oluşturmanız gerekiyor, önce Uygulamalarım’ı tıklayın, ardından App Store Connect’e yeni Uygulama eklemek için artı simgesine tıklayın
Oluştur’a tıkladıktan sonra aşağıdaki App Information sayfasını görürsünüz
NOT: Uygulamanızda iPad veya yatay modlarını desteklemek istemiyorsanız Genel sekmesinde bu alanların işaretini kaldırın
Şimdi Xcode’a gidebilir ve Ürün → Arşivden(Product →Archive) projenin arşivini oluşturabiliriz
Generic iOS Cihazını(Generic iOS Device) seçtiğinizden emin olun.
Arşivleme bittikten sonra Organizer açık değilse, Window’dan açabilirsiniz(Window →Organizer)
Organizer’ı açtıktan sonra uygulamamızı seçebilir ve Distribute App kısmına tıklayabiliriz.
yükleme işleminin tamamlanmasının ardından App Store Connect’ten bir mail alacaksınız.
Bunu yaptıktan sonra, App Store Connect’te uygulamamızı açalım ve soldan Gönderime Hazırla’yı(Prepare for Submission) seçip Uygulama Önizleme ve Ekran Görüntüleri, Anahtar Kelimeler, Promosyon Metni, Açıklama, Destek URL’i, Pazarlama URL’i, Uygulama İnceleme Bilgileri ve Derleme gibi gerekli alanları dolduralım
Uygulama Önizlemesi ve Ekran Görüntüleri için Apple, uygulamanız için en az 3 resim istiyor. Screenspesifications sayfasından teknik özellikleri görebilirsiniz.
Özet geçmek gerekirse
6,5 inç için 3 fotoğraf (1242 x 2688 piksel),
5.5 inç için 3 fotoğraf (1242 x 2208 piksel),
İPad (3. Nesil) 12,9 inç için 3 fotoğraf (2048 x 2732 piksel),
İPad (2. Nesil) 12,9 inç için 3 fotoğraf (2048 x 2732 piksel)Genel olarak bu resimleri oluşturmak için 3 simülatör açıyorum ve uygulamadan ekran görüntüleri alıyorum. Figma’da pikselleri ayarlıyorum ( bu benim favorim :) )
Reddedilmemek için uygulamayı göndermeden önce, Ortak Uygulama Reddetmelerini(Avoiding the Common App Rejections) ve App Store İnceleme Yönergelerini Önleme’yi okumalısınız(App Store Review Guidelines).
Build ve diğer tüm alanları ekledikten sonra Kaydet düğmesini tıklıyoruz. İncelemeye Gönder dedikten sonra eksik varsa aşağıdaki gibi uyarı alıyoruz:
Tüm bilgileri tamamladıktan sonra İncelemeye Gönder’e tıkladıktan sonra bu pencere açılacak ve uygulamanıza göre bu alanları dolduracaktır.
App Store’a Gönderildi!
See the status means from the App Build Statuses and App Statuses
Uygulamamızı incelemeye gönderdik ve İnceleme için bekliyor durumunda. İnceleme başladığında İnceleniyor olarak güncellenecek ve onaylandığında Satışa Hazır olarak değişecek. Bunu gördüğümüzde mağazada yerimizi almışız demektir!!
PlayStore’a Yayınlama — Android
İlk olarak, bir Google Geliştirici Hesabına ihtiyacınız var ve bu hesabın ücreti 25 ABD dolarıdır.
Keystore yoksa, Mac / Linux' üzerinden aşağıdaki komutla bir Keystore oluşturun :
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
Windows (USER_NAME’i değiştirmeyi unutmayın) :
keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
Bu komut key.jks
dosyasını ana dizininizde saklar. Başka bir yerde saklamak istiyorsanız, -keystore parametresine ilettiğiniz bağımsız değişkeni değiştirin. Ancak, keystore dosyasını gizli tutun!
Uygulama üzerinden Keystore Referansı
Keystore dosyanıza referans içeren <app dir>/android/key.properties
adlı bir dosya oluşturun (herkesin görebileceği biyerde tutmayın!) :
storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=/Users/onatcipli/key.jks
Eğer storeFile dosya yolu ile ilgili hata alırsanız, bu soruya göz atabilirsiniz
Gradle’da imzalamayı yapılandırma
<app dir>/android/app/build.gradle
dosyasını editleyerek başlayabiliriz.
Aşağıdaki kodu android
kod bloğundan sonra ekleyin:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file(‘key.properties’)
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
buildTypes kod bloğunu aşağıdaki gibi değiştirin:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
Gradle dosyasını değişiklikten sonra
flutter clean
yapmanız gerekebilir.
uygulamamızı PlayStore’da yayınlamak için uygulama apk’mizi almamız gerekiyor( — split-per-abi cihaz donanımına göre bölünerek apk boyutlarına küçülüyor)
flutter build apk — split-per-abi
Şimdi Google Play Console’una gidebiliriz.
Uygulama Oluştur butonunu tıklayın ve Uygulama Adınızı yazın. Uygulamamızı yayınlamak için aşağıdaki sayfayı göreceğiz ve bu onay kutularının tamamlanıp yeşillenmesi gerekiyor. Fotoğrafta sırasıyla belirtim.
Sürüm Oluştur buton’una tıkladıktan sonra uygulamanızın google tarafından imzalanmasını istermisiniz diye bir soru gelirse evet’e basın ve APK’ları sürükleyip bırakmaya hazırız.
repo_explorer/build/outputs/apk/releases
Uygulama sürümlerindeki Yükleme işlemi bittikten sonra, İçerik değerlendirme aşamasına geçiyoruz
İçerik değerlendirme işlemi bittikten sonra Uygulama içeriği kısmına geçiyoruz.
Uygulama içeriği kısmıda bitirdikten sonra Fiyatlandırma ve dağıtım aşamasına ilerliyoruz.
Bundan sonra Mağza giriş aşamasını tamamlıyoruz.
Bu aşamada en az 1 tane uygulama ikonu(512x512) ve 2 tane uygulama resmi gerekiyor (herhangi bir kenarı en az 320piksel en fazla 3840piksel olmalı)
Mağza giriş işleminide tamamladıktan sonra yukarıda gördüğümüz gibi yapılması gereken herşeyi yapmış bulunuyoruz burda Uygulama sürümlerine giderek Production kartındaki manage butonuna basıp ilerliyoruz en son aşağıdaki görsel ile karşılaştığımızda uygulamamız artık roll-out olmuş bulunuyor yani PlayStore daki yetkililer tarafından incelenip uygun olup olmadığı kontrol edilecek.
PlayStore’a gönderildi!!
GooglePlay console’da uygulamarın durumunun ne anlama geldiğini tamamen anlayabilmek için bu yazılara bakabilirsiniz: rollout ve Publish a draft app
Uygulamamızı incelemeye gönderdik ve İnceleme için bekliyor durumunda. İnceleme başladığında İnceleniyor olarak güncellenecek ve onaylandığında Satışa Hazır olarak değişecek. Bunu gördüğümüzde mağazada yerimizi almışız demektir!!
Sormak istediğiniz bişey varsa twitter @CipliOnat veya Linkedin üzerinden iletişime geçebilirsiniz.
Bu yazımı Türkçe’ye çevrilmesindeki büyük katkılarından dolayı Çağrı Aydın çok teşekkür ederim.