iOS Uygulamasının App Store' da Yayınlanması


Emulatörde test edilen uygulamanın yayınlanması için AppId oluşturulması, provizyon sertifikasının geliştirme ve yayınlama için üretilmesi gibi bir dizi işlemin tamamlanması gerekir. Bu yazıda kısaca bu işlemlerin hangi sırayla yapılması gerektiği ve bazı ipuclarını paylaşacağım.

Önemli Not: App Store Distribution Guide daha detaylı ve güncel bilgiler içermektedir. Geliştiricilerin öncelikle bu dokumana göz attıktan sonra aşağıdaki bilgileri ancak ip ucu ve hatırlama amaçlı olarak kullanabileceğini düşünüyorum.
  1. Cihazın XCode tarafından geliştirme amaçlı kullanılabildiğinden emin olunmalıdır. Cihazı usb kablo ile bağladıktan sonra XCode->Window->Organizer penceresinde Devices sekmesi altında takılı olan iphone/ipad cihazı görüyor olmamız gerekir. Burada cihazın adına sağ tıklayarak "Add Device to Provisioning Portal" e tıklayarak cihazı geliştirme amaçlı olarak kullanabilmeyi aktive edebiliriz.
  2. App ID oluşturulması: iOS Developer hesabımızı kullanarak member center a giriş yapıyoruz. Buradan Certificates,Identifiers Profiles kısmına tıklayarak Identifiers alanındaki App IDs kısmına geçiyoruz. Burada daha önceden oluşturulan wilcard (*)  idleri listelenecektir. Bir uygulamaya benzersiz Id değeri vermeden de uygulamanın yayınlanması mümkündür. Fakat burada uygulamaya daha sonradan eklenecek push notification, iAd entegration gibi işlemlerde bir daha geri döndürülemeyecek şekilde bu özellikleri kullanamama durumu ortaya çıkacaktır. Her uygulama için bir App ID oluşturmak uygulamanın geleceği açısından büyük önem taşır.
  3.  App IDs kısmında sağ üst köşede bulunan + butonuna tıklayarak yeni App Id oluşturabiliriz. App Name kısmına uygulamamızın adını, Explicit App ID kısmına da com.onuratci.ios.appname şeklinde paket adını yazabiliriz. Burada apple developer hesabımızla ilişkili identifier kullanılacağı için sonuçta Y6GHZA5.com.onuratci.ios.appname şeklinde benzersiz bir ID değeri ortaya çıkacaktır. 
  4. App Id oluşturma işlemi tamamlandıktan sonra tekrar XCode uygulamasına dönerek Window->Organizer ekranından refresh butonu ile provizyon profillerinin sunucudan yenilenmesini isteyebiliriz. bu sayede eklediğimiz app id için yeni provizyon sertifikaları tanımlayabilir hale geleceğiz. 
  5. Development Profilinin Oluşturulması: Organizer penceresinde en üstte bulunan provisioning profiles altında New seçeneği ile yine geliştirici hesabımıza giriş yaptığımızda App ID kısmına az önce eklediğimiz uygulamanın da geldiğini görürüz. Buradan uygulamamıza provision profile adı, emulasyon için gerçek cihazı IDsi  ve uygulama ID değerini seçerek yeni profil tanımlamayı tamamlarız.
  6. Distribution Profilinin Oluşturulması: Profili tanımladıktan sonra distribution profile oluşturmak için tekrar member center alanındaki profiles kısmından distribution profiles kısmına yeni seçeneğini seçerek bu defa app distribution için profile oluşturma işlemini tekrarlayabiliriz. Bu sihirbazda seçtiğimiz App ID için dağıtım profili oluşturulacak ve indirilebilir halde bize sunulacaktır. İndirdiğimiz profil dosyasına çift tıklayarak doğrudan XCode üzerindeki Organizer alanına eklenmesini sağlayabiliriz.
  7. Code Signing (Development/Distribution): Kod imzalama development için eklediğiniz cihazınıza uygun profil ile ya da app store'da yer alacak şekilde distribution profili ile imzalanması anlamına gelmektedir. XCode üzerinde Projects penceresinde proje seçildiğinde Build Settings -> Code Signing  kısmında Code Signing Identity özelliğinin birden çok değer içerdiği görülecektir. Burada az önce oluşturulan uygulamaya özel (wildcard * profiller de listelenir) Uygulama Adı- Development / Distribution şeklinde iki profilin de bulunuyor olması gereklidir. Burada uygulamayı build ederken test cihazımıza göndereceksek developer profili ile uygulama app store'da yayınlanacak şekilde build edilirken de distribution profili ile imzalandığından emin olmalıyız. 
  8. Uygulamanın App Store'a aktarılması: Bu aşamada yine XCode tarafından bir dizi işlem sonucu code signing alanında distribution profili ile projenin Product menüsünden clean,build ve archive işlemlerini takip edecek şekilde app store için binary oluşturulması işlemini tamamlayabiliriz. Burada önemli bir koşul olarak archive aşamasında xcode ile çalıştığımız bilgisayarda ipad/iphone cihazının takılı olması ve run configuration kısmında bu cihazda çalışacak şekilde seçili olması gerekmekte. Organizer penceresinde önce oluşturduğumuz arşiv dosyasını validate seçeneği ile bir dizi doğrulama işleminden geçiriyoruz. Burada herhangi bir sorun olduğunda hata mesajı ile birlikte app store 'a yükleme işlemini iptal edecektir. Belirtilen sorunu çözdükten sonra tekrar bu aşamaları takip ederek validate işleminden geçtikten sonra ise distribute seçeneğine tıklamak ve uygulamanın app store'a yüklenmesini beklemek gerekiyor. Bu aşamada diğer önemli bir konu ise validate aşaması öncesinde itunesconnect üzerinden uygulamanın app store kaydının oluşturulması, gerekli tüm ücretlendirme ekran görüntüsü, açıklama ve uygulamaya özel şifreleme algoritması kullanılıp kullanılmadığının seçilmesi gerekiyor. Uygulama itunesconnect üzerinde "ready to upload" durumuna geldiğinde XCode üzerinde validation ve distribution işlemleri yapılabilir.

    iOS7 için önemli not: Bir hafta öncesine kadar yapılan gönderimlerde bir sorunla karşılaşılmasa da XCode ile validation işleminden geçen ve review işlemine gönderilmiş uygulamanız için app storea yükleme anından birkaç dakika sonra icon dosyalarının eksik olduğu ile ilgili uyarı gelebilir. Burada sorun iOS 7 ile gelen yeni icon standardına uygun dosyaların da uygulamanın içerisinde bulunmasının istenmesinden kaynaklanmakta. Şu adreste de belirtildiği gibi uygulamada bulunması gereken icon dosyalarının tam listesi ve Info.plist dosyasına manuel olarak eklenmesi gereken icon dosyaları listesi aşağıdaki şekildedir.



Written on September 15, 2013