Flutter ile Mağazalara Uygulama Göndermek(AppStore — PlayStore)

onat çipli
Flutter İzmir
Published in
7 min readApr 25, 2020

--

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

Bireysel bir hesap için yılda 100$ dolar alıyorlar.

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.

--

--

onat çipli
Flutter İzmir

Software Engineer who enjoys creating mobile applications with Flutter and Dart