apple developer / distribution provisioning profilleri

15/03/2012 46 Yazar: yasin
apple developer / distribution provisioning profilleri

Bu yazımızda uygulamalarımızı Apple cihazları üzerinde test edebilmek ve app store üzerinden kullanıcılara ulaştırabilmek için edinmemiz gereken provizyon dosyalarının ne işe yaradığını ve nasıl alınacağını öğreneceğiz.
Öncelikle kısaca provizyon dosyalarının ne olduğundan biraz bahsedelim;
Provizyon dosyaları, developer ve distribution olarak ikiye ayrılırlar ve uygulamalarımızı IOS cihazlar üzerinde test edebilmek ve app store’dan dağıtımını yapabilmek için ihtiyaç duyduğumuz sertifika ve appId’leri içerirler.

Developer provizyonu, uygulamamızı geliştirken bir yandan da tanımladığımız IOS cihazları üzerinde test edebilmemizi sağlar.
Distribution provizyonu ise uygulamamızın app store üzerinden dağıtımını gerçekleştirebilmek için ihtiyaç duyacağımız dosyadır.
Bu paketlerin içeriğinde developer sertifikamız, uygulamalarımızı test edeceğimiz IOS cihazlarımız (iphone,ipad,ipod gibi) ve oluşturacağımız uygulamamızı tanımlayan appId bulunacaktır.
Provizyon dosyalarının belirli kullanım süreleri vardır ve bu süre sonunda geçersiz kalırlar, bu durumda sertifikalarımızı güncellememiz ve yeni provizyon dosyaları oluşturmamız gerekebilir.
Provizyon dosyaları oluşturacağımız uygulamaya özel olabileceği gibi, genel olarak tüm uygulamalarımızda kullanabileceğimiz şekilde de oluşturulabilir. Ama uygulamaya özel oluşturmadığımız provizyon dosyalarıyla, push notification gibi özellikleri uygulamalarımızda kullanamayız.
Neyse, gelin daha fazla kafa karışıklığına yol açmadan basit bir şekilde tüm uygulamalarımızda kullanabileceğimiz provizyon dosyalarımızı oluşturalım.
Yukarıda da bahsettiğim gibi oluşturacağımız uygulamalar, genel amaçlı bu provizyonlarımızı kullanarak push notification veya app in purchase gibi spesifik özelliklerden mahrum kalacaklar, ama ne de olsa daha yolun başındayız, o konulara gelene kadar köprünün altından çok su akar.
apple developer / distribution provisioning profilleri (adım 1) 
 
 

membercenter adresinden daha önce oluşturduğumuz apple geliştiricisi hesabımızla giriş yapıyoruz.
apple developer / distribution provisioning profilleri (adım 2) 
 
 
 

Daha sonra “IOS Provisioning Portal” linkine tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 3) 
 
 
 

İlk işimiz sertifika oluşturmak, bunun için soldaki menüden “Certificates” linkine tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 4) 
 
 

Daha sonra ilk dağıtım sertifkamızı oluşturmak için “Development” sekmesi altında bulunan “Request Certifiacate” butonunu tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 5) 
 

Dikkat edeceğiniz üzere sertifika isteğinde bulunabilmemiz için bizden bir dosya istenmekte, bu istek dosyasını MAC’imizde bulunan “anahtar zinciri erişimi” (key chain access) arayüzünü kullanarak oluşturacağız.
apple developer / distribution provisioning profilleri (adım 6) 
 
 

“anahtar zinciri erişimi” arayüzüne, MAC’imizin “araçlar” (utilities) menüsünden ulaşabiliriz.
apple developer / distribution provisioning profilleri (adım 7) 
 

“anahtar zinciri erişimi” menüsü altında;
“sertifika yardımcısı” (certificate assistant),
“sertifika otoritesinden sertifika iste” (request a certificate from certificate authority)
seçeneğine tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 8) 
 
 
 

Açılan pencerede, “genel ad” kutucuğunua kendi adımızı yazarak “diske kaydedilir” seçeneğini işaretleyip “sürdür” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 9) 
 
 
 

İstek dosyamızın kayıt edileceği yer olarak masaüstü’nü seçiyor ve kaydet butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 10) 
 

Oluşturduğumuz istek dosyasının masaüstüne gelip gelmediğini kontrol ederek “Bitti” butonunu tıklıyor ve “anahtar zinciri erişimi” arayüzünden çıkıyoruz.
Not: Oluşturduğumuz bu istek dosyasını ileride sertifika sürelerimiz bittiğinde yeni sertifika isteğinde bulunmak için de kullanacağımızdan saklamakta fayda var.
apple developer / distribution provisioning profilleri (adım 11) 
 
 

Developer center arayüzüne geri dönüyor ve kaldığımız yerden “dosya seçin” butonuna tıklayarak biraz önce masaüstüne oluşturduğumuz istek dosyamızı seçiyor ve “submit” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 12)

Evet, artık oluşturduğumuz “development” sertifikamızı, sertifikalar listesinde son kullanım tarihiyle birlikte görebiliriz.
Not: Sertifikamız, sertifikalar listesinde hemen görülemeyebilir, bu durumda listeyi bir kaç saniye sonra tekrar kontrol edelim.
Şimdi aynı işlemleri “distribution” sertifikamızı oluşturmak için tekrarlıyacağız. “distribution” sekmesine tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 13) 
 
 
 

Aynı şekilde “distribution” sertifikamızı oluşturmak için de “request certificate” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 14) 
 
 

“Development” sertifikamızı alırken kullandığımız istek dosyamızı “distribution” sertifikamızı alırken de kullanabiliriz.
Masaüstünde bulunan istek dosyamızı seçerek “submit” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 15)

Artık “distribution” sertifikamızı da son kullanma tarihiyle listede görebiliriz.
“development” sertifikamız da olduğu gibi “distribution” sertifikamızı da, sertifikalar listesinde hemen göremeyebiliriz. Bir kaç saniye sonra orada olacaktır.
Sıra uygulamalarımızı test edeceğimiz cihazları, tanımlamaya geldi. Soldaki menüden “devices” linkini tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 16)

Evet, cihazlarımızı tanımlamadan önce ufak bir hatırlatma, bu listeye maksimum 100 adet IOS cihazı tanımlayabilirisiniz ve aynı cihazı bu listeden silip tekrar yüklemek bile 100 adet hakkınızdan 1 eksiltecektir.
Ayrıca eş, dost her önünüze gelenin cihazını bu listeye eklemeyin, apple bunu fark ederse gözünüzün yaşına bakmaz ve sizi developer ağından çıkarır.
Cihazımızı eklemek için “add devices” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 17) 
 
 

Karşımıza çıkan pencerede, bizden eklemek istediğimiz cihazın ismi ve device id’si istenmekte.
Bu bilgileri “xcode” programı içserisinden “organizer” arayüzüyle elde edeceğiz.
apple developer / distribution provisioning profilleri (adım 18) 
 
 

Bu bilgileri almak için öncelikle eklemek istediğimiz cihazımızı USB kablosu aracılığıyla MAC’imize bağlıyor ve xcode programı üzerindeki “window” menüsünden “organizer” arayüzünü açıyoruz.
apple developer / distribution provisioning profilleri (adım 19) 
 
 

Karşımıza çıkan pencerenin solunda bulunan menüden cihazımızı seçerek cihaz ismi ve identifier’i kopyalıyarak, cihaz kaydı sayfasında ilgili alanlara yapıştırıyor ve “submit” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 20) 
 
 

Eklediğimiz cihazımızı “Current registered devices” listesinde gördükten sonra, sıradaki adım olan uygulama Id mizi oluşturmak için soldaki menüden “app Ids” linkine tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 21)

“App Id” yi uygulamamıza özel tanımlayabileceiğimiz gibi, tüm uygulamalarımıza uygun bir şekilde de oluşturabiliriz. Biz şimdiki örneğimizde tüm uygulamalarımızda kullanacağımız bir “app Id” oluşturacağız.
“App Ids” sayfasına girdikten sonra sağ üst köşede bulunan “new app Id” butonuna tıklıyoruz ve karşımıza gelen sayfada bulunan “description” alanına “app Id” ye vereceğimiz “forAllApplications” ismini yazıyoruz. Siz bu ismi istediğiniz gibi değiştirebilirsiniz tabi.
“bundle identifier (app id suffix)” kısmına ise ters alan adı formatına uygun bir id tanımlamamız gerek, bu örnekte “com.yasinturkoglu.*” olarak tanımlanan alan adını kendinize özel bir isimle değiştirebilirsiniz.
Alan adı nın sonundaki noktadan sonra yer alan “*” işareti bu “app Id” nin tüm uygulamalarda kullanılabilir olmasını sağlayacaktır. “*” işareti yerine uygulamanızın adını da yazabilirsiniz pek tabi ama bu şekilde düzenlenmiş bir “app Id” sadece aynı isme sahip uygulama tarafından kullanılabilir.
Son olarak “submit” butonuna tıklayarak “app Id” mizi ekliyoruz.
Önemli: “App Id” ler bir kez oluşturulduktan sonra silinemezler, amaçlarınıza uygun bir “App Id” oluşturduğunuzdan emin olun, “App Id” listeniz kalabalıklaştıkça kafa karıştırıcı bir hale gelebilir.
apple developer / distribution provisioning profilleri (adım 22) 
 
 

Evet, artık oluşturduğumuz “app id” yi listede görebiliyoruz, dikkat edeceğiniz üzere “app Id” miz bir uygulamaya özel olmadığından “push notification”, “app in purchase” ve “game center” alanları ulaşılamaz durumda.
apple developer / distribution provisioning profilleri (adım 23) 

Şimdi sırada, şu ana kadar aldığımız tüm sertifikaları ve tanımladığımız bilgileri birer provizyon dosyası haline getirmek var.
Soldaki menüden “provisioning” linkine tıklıyor ve karşımıza gelen pencerede “development” sekmesi altında bulunan “new profile” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 24) 

“Development” profilimiz için “myDevelopmentProfile” ismini veriyoruz. “certificates” alanında mevcut sertifikamızı seçiyoruz, ardından “app Id” mizi seçiyor ve son olarak “devices” bölümünde uygulamamızı test edeceğimiz cihazlarımızı seçip, “submit” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 25) 
 

Evet, development profilimiz artık hazır ve “development provisioning profiles” listesinde görünüyor.
“Download” butonuna tıklayarak oluşturduğumuz profil dosyamızı MAC’imize indiriyor ve ardından “distribution” sekmesine tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 26) 
 
 

“Distribution” profilimizi oluşturmak için “distribution method” olarak “app store” seçeneğini işaretliyoruz, profilimize “myDistributionProfile” ismini veriyor ve “app Id” mizi seçerek submit butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 27) 
 
 

Evet, profilimizi “distribution” sekmesi altında bulunan “distribution provisioning profile” listesi altında görebiliyoruz, “download” butonuna tıklayarak MAC’imize indiriyoruz.
apple developer / distribution provisioning profilleri (adım 28) 
 
 
 

Artık elimizde iki adet provizyon dosyamız var, MAC’imize indirdiğimiz bu dosyaların üzerine çift tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 29) 
 

“Xcode” altındaki “organizer” arayüzü açılacaktır “provisioning profiles” sekmesi altında, her iki provizyonumuzu da görebiliyoruz, daha sonra “organizer” arayüzünde sol menüde yer alan ve şu an MAC’imize bağlı cihazımızın altında yer alan “provisioning profiles” sekmesini tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 30) 
 
 

Uygulamamızı cihaz üzerinde test edebilmemiz için gereken “development” profilimizin aynı şekilde cihaza ait profil listesine de eklenip eklenmediğini kontrol ediyoruz.
apple developer / distribution provisioning profilleri (adım 31) 
 
 

Artık apple development portalıyla işimiz bitti, şimdi sırada bu provizyonlarımızı uygulamamızda nasıl kullanacağımızı öğrenmek var.
“xcode” programını açıyor ve “create a new xcode project” tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 32) 
 
 
 

“Single View Application” kutucuğunu seçip “next” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 33)

Bu örnekte uygulamamıza “deneme” adını veriyoruz, “company identifier” “app Id” mizi oluştururken seçtiğimiz ters alan adı formatına uygun Id miz olmalıdır.
Dikkat edeceğiniz üzere “Bundle Identifier”, “company identifier” ve uygulamamıza verdiğimiz isimin bileşiminden oluşmaktadır.
“Class prefix” imizi de uygulama ismimizle aynı bırakıyor ve “device family” listesinden uygulamamızın çalışacağı cihaz türünü seçiyoruz.
“story board” ve “ARC” kullanımı sizin insiyatifiniz de, bu örnekte “story board” kullanmıyoruz ve “ARC” yi aktive ediyor ve “next” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 34) 
 
 
 

Uygulamamızın kaydedileceği yeri seçtikten sonra “create” butonuna tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 35)

Uygulama açıldıktan sonra sol menüden uygulama başlığına tıklıyor ve sağ bölmedeki “build settings” sekmesi altında yer alan “code signing” bölümünü kontrol ediyoruz.
Dikkat edeceğiniz üzere “debug” ve “release” olarak iki adet code signing alanı var;
“debug” uygulamamızı geliştirip test ederken ihtiyaç duyacağımız “development” profilimize ayarlanmış durumda fakat aynı şekilde “release” profili olarakda “development” profilimizi görüyoruz. Bu yanlışı düzeltmek ve “release” alanında distribution profilimizi seçmek için, release altında seçili olan profili tıklıyoruz.
apple developer / distribution provisioning profilleri (adım 36) 
 

Açılan menüden “distribution” profilimizi seçiyoruz.
Evet, artık uygulamamızı geliştirip “development” profilimizle cihazımız üzerinde test edebilir ve “distribution” profilini kullanarak itunes connect üzerinden app store’da yayınlayabiliriz.