AppCenter ile Mobil DevOps

Merhabalar,

Mobil uygulamalarımızın geliştirme süreci devam ederken veya tamamlandığında hayatımızı kolaylaştıracak araçlara ihtiyaç duyarız. Analytics, carsh report, push-notification gibi özellikler artık ihtiyaç olarak değil, olması gerekli özellikler olarak görmeliyiz. Bunların yanında automation test, build, distribution gibi özellikler ise bize konfor alanı sağlayan, hayatımızı kolaylaştıran ve geliştirme sürecini eğlenceli hale getiren özellikler.

Kolayca ulaşabileceğimiz bir mobil uygulama yönetim aracı olan AppCenter ise bize tüm konfor alanlarını çok kolay bir şekilde kullanma olanağı sağlıyor. Bir örnek yaparak automation test, build ve ditribution konusunda AppCenter’ın yeteneklerini ve kolaylarını sizlere aktarmaya çalışacağım.

AppCenter portaline giderek öncelikle bir proje oluşturmamız gerekiyor.

Projemizi oluşturduktan sonra Build sekmesine gidip kodlarımızın olduğu sistem altındaki repomuzu seçiyoruz. Burada AppCenter bizlere 4 seçenek sunuyor.

Bu örneğimizde Azure DevOps içinde açacağımız bir repo üzerinden ilerleyeceğiz.

https://dev.azure.com/

Azure DevOps portalinde bir proje oluşturuyorum.

Projemizin adını ve açıklamasını girdikten sonra, projemizi public mi private mi geliştireceğimizi seçiyoruz. Son olarak version control olarak git kullanacağımızı ve work item process olarakta Agile ilerleyeceğimiz belirtiyorum.

Visual Studio 2019 kullanarak Xamarin projemi geliştireceğim fakat önce Azure DevOps üzerinden açtığım projeye bağlanmam gerekiyor.

Clone or check out code sekmesinden, browse a repository diyerek Azure DevOps portalinde oluşturduğum projeyi seçiyorum.

Projeme bağlandıktan sonra XamDevOps adında bir Xamarin.Forms projesi oluşturuyorum.

Artık işlerimiz daha çok AppCenter tarafında olacak. AppCenter portalinden Build sekmesine gidip, Azure DevOps sekmesinden repomuzu seçiyoruz.

Projem özelindeki Azure DevOps ve AppCenter arasındaki bağlantıyı kurduktan sonra ilk commitimi yapabilirim.

Commit işlemini tamamladıktan sonra AppCenter Build sekmesinde ilgili commit’i görebiliyorum. Şimdi ilgili kodların hangi ayarlar altında build edileceğini tamamlamamız gerekiyor.

Ayarlardan bahsetmek gerekirse;

  • Configuration: Build çıkartmak istediğiniz mode seçimi
  • SDK Version: Xamarin.Android version seçimi
  • Build Scripts: post/pre-build esnasında çalıştırmak istediğiniz bir script var ise bu kısımda yönetiyorsunuz
  • Build Frequency: Kodlarınızı her push ettiğinizde otomatik build olmasını isteyebilirsiniz veya süreci manuel olarak ilerletebilirsiniz.
  • Build Android App Bundle: Detaylar için ilgili yazıyı linkten okuyabilirsiniz.
  • Automatically Increment Version Code: Her build esnasında version code’un otomatik olarak artmasını sağlayan ayar. Build ID veya Timestamp’e göre davranışını seçebilirsiniz.
  • Environment Variables: Build scriptlerinizi yönetebilmek için ekleyebileceğiniz custom değişkenler. Detay yazıyı linkten inceleyebilirsiniz.
  • Sign Builds: AppCenter üzerinden oluşturduğunuz build dosyalarınızı direkt store göndermek isterseniz Keystore dosyanızı yüklemeniz gerekiyor. Keystore ile ilgili dosya, password, alias gibi ayarları girebileceğiniz yer. Yapacağımız örnekte bu dosyaya ihtiyacımız olduğu için VS2019 içinde bir keystore file oluşturmamız gerekiyor. Oluşturduktan sonra C:\Users\Kullanıcı\AppData\Local\Xamarin\Mono for Android\Keystore\XamDevOps altında keystore dosyanızı bulabilirsiniz.
  • Test on a Real Device: Oluşturduğunuz paketin gerçek cihazlarda çalışıp çalışmadığını test etmenize yarar. Eğer gerçek bir cihaz üzerinde ücretsiz test etmek istiyorsanız build süreniz 10dak artacaktır.
  • Aşağıdaki görsellerde Test on Real Device seçeneği ile build edilmiş çıktıları görüyoruz.

  • Distribute Builds: Sign APK oluşturabiliyorsanız bu seçeneği kullanabilirsiniz.
  • Build Status Badge: Build status durumunu size Image url veya Markdown olarak veren ek özellik

Gerekli ayarları yaptıktan sonra Save & Build butonu ile işlemleri başlatıyorum.

Build Output altında kodlarımın Azure DevOps üzerinden forklandığını ve seçtiğim ayarlar altında build edilmeye başlandığını görüyorum.

Download kısmında ise build, bundle ve logları indirebilirim.

Şimdi ise distribute sekmesinden yeni bir release oluşturacağım.

İlk bakışta bizden .APK formatında bir dosya yüklememizi istiyor fakat zaten bizim paketlerimiz Build sekmesi altında var. Distribute an Existing Build sekmesi ile daha önceki paketlerimizi ulaşabiliriz.

Build, notes ve destination sekmelerini de düzenledikten sonra review ekranı karşımıza geliyor.

Collaborators varsayılan dağıtım grubu olarak karşımıza geliyor. İstersek Distribute sekmesi altından grup oluşturabiliriz.

Distribution sonrası Collaborators grubundaki herkese bildirim maili gidiyor.

İndirilme sayısı gibi verileri release içerisinde görüntüleyebiliyoruz. Badge sonucu
https://build.appcenter.ms/v0.1/apps/453e55d0-67ce-434d-a971-ab75e78a7953/branches/master/badge

Yeni bir commit çıktığında ise build, test gibi işlemlerin otomatik olarak başladığını göreceğiz.

Test sonuçlarını ve test cihazları ekleme, çıkartma, değiştirme gibi durumları Test sekmesinden takip edebilirsiniz. AppCenter test konusunu sonraki yazılarımda detaylandırmaya çalışacağım.

Yiğit

Xamarin Developer, Consultant & Architect. Community Leader and Director of Xamarin Türkiye

Post A Reply