2018: iOS Yayın ve CI / CD Süreci için Yıllar İçindeki En Büyük Sallanma. 2019'a Nasıl Hazırlanırsınız?

Orijinal Bağlantılar:

2018'de, Mobil DevOps ve CI / CD dünyası bazı büyük duyurular ve haberlerle sarsıldı. Bu duyurular Apple'dan veya açık kaynaklı topluluklardandır, ancak bunlar kesin olarak iOS uygulamaları için CI / CD yapmanın geleneksel yollarını değiştirecektir. Bu yazıda, 2019’da dört gözle beklemek için 2018’de tekrar bekleyeceğiz. 2018’de iOS uygulamaları için Mobil DevOps ve Sürekli Teslimat’ta nelerin değiştiğini ve 2019.

1. Apple + BuddyBuild

2018'in yeni yılında, Apple BuddyBuild'i satın aldı ve Mobile DevOps'taki şeyler büyük ölçüde değişti. BuddyBuild, mobil uygulamalar için mükemmel bulut CI / CD servislerinden biridir. BuddyBuild, Apple’ın bir parçası haline geldiğinden, Android uygulamaları için desteği kesmiştir. Ayrıca iOS uygulamaları için yeni müşteriler almayı da durdurdu. Bu haber, hem Android hem de iOS için BuddyBuild servisini kullanan şirketler için büyük şoklardan biriydi. Bu şirketlerin, pahalı göç işlemleriyle sonuçlanan Android uygulamaları için başka bir CI / CD servisi bulmaları gerekiyor. Bu aynı zamanda Cloud tabanlı CI / CD servislerini kullanan şirketler için büyük bir dersti, mobil altyapının şirket içinde mi yönetileceğini veya başka şirketlere mi yaptırılacağını düşünmelerini sağlıyor. Mobil DevOps altyapısını kurum içinde yönetmenin artılarını ve eksilerini burada ele aldık. Apple ve BuddyBuild birleşmesi, söz konusu Xcode Serve'nin geleceğini de ortaya koydu. Bu, şu anda Xcode Server'ı kullanan şirketler için bir alarm zilidir.

2019'a dört gözle:

  • Hem Android hem de iOS için ortak platformlar arası mobil CI / CD çözümleri mi arıyorsunuz? Proje altyapınız için ne uygunsa, Travis CI, Nevercode, Bitrise, Circle CI vb. Gibi diğer mobil CI / CD servislerini arama zamanı. Veya yetenekli özel kaynaklarınız varsa, Jenkins, TeamCity vb. Kullanarak mobil Altyapı'yı şirket içinde yönetin.
  • İOS sadece çözüm mü arıyorsunuz? Diğer hizmetlere geçmeden önce Apple + BuddyBuild'in size sunduğu WWDC'ye kadar bekleyin.
  • Mevcut Xcode Server kullanıcıları, Xcode Server'ın geleceği ile ilgili haberleri alana kadar kullanmaya devam edebilir.

2. App Store Connect API'sı

2018’deki bir diğer son dakika haberi Apple’ın AppStore Connect API'sini duyurmasıydı. WWDC 2018'de, hem Apple Developer portalı hem de iTunes Connect ile konuşmak için resmi bir API duyuruldu. Apple ayrıca Developer Portal ve iTunes Connect'i birleştirdi ve “App Store Connect” olarak yeniden markalandırdı. App Store Connect'teki Yenilikler ve App Store Connect'i Otomatikleştirme konusunda harika WWDC oturumları var

App Store Connect API, kimlik doğrulama için JWT'ye (JSON Web Belirteçleri) dayalı standart RESTful API'dir ve tüm platformlardan erişilebilir. App Store Connect API ile, dahil olmak üzere App Store ile ilgili hemen hemen her şeyi otomatikleştirebiliriz.

  • Sertifikaları yönetme, profilleri sağlama, cihaz kimliğini ve paket kimliğini yönetme
  • Kullanıcıları, rolleri ve App Store Connect'in Uygulama erişimini yönetme
  • TestFlight ve Beta Test Cihazlarını ve Genel Bağlantıları Yönetme
  • Finansal raporları ve Satış raporlarını indirme

XCBlog, önceki yazıda ayrıntılı olarak App Store Connect API'sini kapsamıştır. App Store Connect API'sı, mevcut CI / CD işleminden çok sayıda üçüncü taraf aracı kaldıracak. Hiç şüphe yok, kaputun altında App Store Connect API kullanan pazarda yüzlerce açık kaynak araç olacak.

2019'a dört gözle:

App Store Connect API'sı, mevcut CI / CD işleminden çok sayıda üçüncü taraf aracı kaldıracak. Hiç şüphe yok, kaputun altında App Store Connect API kullanan pazarda yüzlerce açık kaynak araç olacak. App Store Connect API'sini kullanarak proje gereksinimlerinize uyacak şekilde parlak araçları kullanın veya kendi özel aracınızı yazmaya hazır olun.

3. Fastlane Emekli

Fastlane, birçok iOS uygulaması için iOS dağıtım boru hatlarını otomatikleştirmek için kullanıldı ve şimdiye kadar iyi bir şekilde hizmet etti. Apple, Xcode Server ve üçüncü taraf CI / CD servislerindeki otomasyon iş akışını büyük ölçüde geliştirdiğinden, temel otomasyonun çoğunu idare eder, Fastlane araçlarının kullanımı gereksiz hale gelir. Apple, Apple Developer portalına veya iTunes Connect'e bağlanmak için hiçbir zaman bir API sağlamadı. İOS Geliştiricisinin çoğunun, iOS dağıtım boru hatlarını otomatikleştirmek için Fastlane'u seçmesinin nedeni budur. Bununla birlikte, Apple’ın AppStore Connect API’yi duyurmasıyla birlikte, Fastlane araçlarının çoğu gereksiz hale gelecek ve er ya da geç yerel Apple geliştirici araçları ile değiştirilmelidir. Fastlane topluluğu Twitter ve Github'da da sessizleşti, Fastlane CI projesi de artık kullanımdan kaldırıldı. Bu, Fastlane'un er ya da geç emekli olması gerektiğini gösterir. Parlak araçlar ve App Store Connect API için hazır olun.

2019'a dört gözle:

Tarama, spor salonu gibi Fastlane araçlarının parçaları, bir iOS uygulaması oluşturmak ve test etmek için hala iyi çalışacaktır, ancak er ya da geç, App Store Connect API'sına dayanan yeni akışı benimsemeniz gerekecektir. Artık uçağa binmeden, örneğin uçağa binmeye gerek duymayan Fastlane araçlarını hazırlayın.

Er ya da geç, yeni iş akışına geçmek zorundasınız, bu yüzden yeni araçlar için hazırlık yapmaya başlamak ve iOS projelerinden Fastlane ve Ruby işlerinden emekli olmak iyi bir fikir olacaktır.

4. TestFlight Geliştirmeleri + Aşamalı Bültenleri

Apple, beta uygulamasını test etmek için bağlantıyı paylaşabileceğimiz ve halkları alabileceğimiz TestFlight ortak bağlantı desteğini başlattı. Halka açık bağlantılar, 10K test uzmanlarına kadar gönderilebilir, ancak sınırı belirleyebiliriz. Sayısal test cihazlarını kontrol etmek için bağlantılar herhangi bir zamanda devre dışı bırakılabilir veya etkinleştirilebilir. Grup oluşturma, gruba yapı oluşturma, genel bağlantıları yönetme, test etme ve test bilgileri gibi TestFlight özelliklerinin çoğu, bir App Store Connect API'sı kullanılarak otomatikleştirilebilir. Sürekli teslimat için aşamalı sürümler + TestFlight geliştirmeleri, korkusuz sürümler için birlikte daha iyi çalışabilir.

2019'a dört gözle:

TestFlight oluşturmak için genel bağlantıları kullanmaya başlayın, ancak paylaşırken dikkatli olun. Yayımlamadan önce özelliklerin halka sızdırılma riski vardır. Test cihazlarını yönetme işlemini otomatikleştirmeye başlayın, App Store Connect API'sini kullanarak gruplandırın. Risksiz üretimdeki belirli özellikleri test etmek için Aşamalı sürümden yararlanın.

5. App Store Connect- iOS Uygulaması

Apple ayrıca “App Store Connect” iOS uygulamasını başlattı, böylece iOS cihazlarındaki neredeyse tüm etkinlikleri web sitesine gitmeye gerek kalmadan gerçekleştirebildik. İOS uygulamasında

  • Trendleri, Satışı ve Güncellemeleri, Uygulama İçi Satın Alımları, Uygulama Paketlerini görün
  • Tüm Uygulamalarımız ve geliştirme ekibine geçme yeteneği.
  • Ayrıntılı Uygulama Bilgileri, uygulamaları serbest bırakma / reddetme, kullanıcı incelemelerini yönetme ve bildirim ayarlama

İOS Uygulamasından ön siparişler, Uygulama İçi Satın Alma İşlemleri vb. Hakkında birçok şey vardır.

2019'a dört gözle:

Cep telefonunuzdaki tüm App Store Connect özelliklerini yönetmek için iOS uygulamasını kullanın.

6. Yeni Xcode Yapı Sistemi

Xcode Yeni Yapı Sistemi, Xcode 10'da varsayılan olarak etkinleştirilmiştir. Yeni yapı sisteminin tam sürüm notunu buradan okuyabilirsiniz. Yeni blog sistemimizin iç detaylarını önceki blog gönderimizde ele aldık. Yeni derleme ayarı Xcode Files-> Proje / Çalışma Alanı Ayarları'ndan etkinleştirilebilir ve eski ile yeni derleme sistemi arasında geçiş yapabiliriz. CI sunucusunda, xcodebuild komutunu kullanarak komut satırından sonra -UseModernBuildSystem = YES ek parametresini de geçmeliyiz. Önceki XCBlog'da kullanılabilecek Xcode new build system hakkında daha fazla bilgi edinebilirsiniz. Modern yapım sistemini kullanarak, burada belirtilen bazı temel ipuçlarını takip ederek Swift yapım zamanını önemli ölçüde artırabiliriz.

2019'a dört gözle:

Xcode new build sistemi, normal akışla belirlenemeyen sorunları bulmak için tasarlanmıştır. Sistemin düzgün bir şekilde çalışmasını sağlamak için iOS uygulamalarımızı uyarlamamız gerekebilir. Yeni yapı sistemi etkinleştirildiğinde bazı hatalar yaşayabiliriz, bunları anında düzeltmeliyiz.

7. AI Tabanlı ve Paralel Test

Bir iOS uygulaması alan, test senaryoları üreten ve bunları bulutta uygulayan pazarda ortaya çıkan birçok AI tabanlı, kodsuz mobil test aracı var. Bu araçlar ayrıca, uygulamalarda herhangi bir yapılandırma olmadan temel sorunları bildirir. Şu anda, piyasada mevcut birkaç AI / ML tabanlı mobil test aracı bulunmaktadır, örneğin mobil test için test.ai. Görsel regresyon testi için Applitoolsuses AI. Bitbar, Yapay Zeka kullanarak mobil uygulamaları test etmek için AI Testbot olarak da bilinen AI odaklı uygulama testi çözümünü duyurdu. Bu araçlar, gelecekte QA faaliyetlerinin nasıl yapıldığını ve AI tabanlı araçların iOS test çalışmalarını desteklemek için nasıl kullanılabileceğini değiştirebilir.

Apple ayrıca her yıl test teknolojilerini geliştiriyor. 2018 yılında, paralel test için destek, simülatörlerin klonları oluşturularak, tek simülatör içindeki test paketleri paralelleştirilerek bir sonraki seviyeye duyuruldu. Xcode kaputun altında farklı bir koşucu işlemi yaratır ve her işlem atanmış özel testler alır. Bu, test uygulamasını önemli ölçüde azaltır. Daha fazla burada Xcode Paralel test hakkında.

2019'a dört gözle:

İOS uygulamalarını test etmek için AI tabanlı test araçlarından yararlanın ve XCTest için paralel test desteğini kullanın.

8. IPA dosyalarını dağıtmanın kolay yolları

Şu an itibariyle, IPA dosyalarını App Store Connect'e dağıtma seçeneği sınırlıydı. En yaygın seçenekler yerel Xcode, Uygulama yükleyici, Fastlane, ITMSTrasporter veya altool'dur. Bu seçeneklerle ilgili detayları buradan detaylı olarak okuyabilirsiniz. Ancak, 2018'de IPA dosyalarını dağıtmak için birkaç seçeneğimiz daha var

  • Linux Server'dan ITMSTrasporter'ı kullanma. Ayrıntılar burada
  • IPA dosyasını doğrudan App Store'a yüklemek için xcodebuild'i kullanma. Ayrıntılar burada

Bu, CI / CD sunucularının önceden oluşturulmuş IPA dosyalarını App Store'a daha sorunsuz ve hatta Linux sunuculardan yüklemelerine olanak sağlar.

2019'a dört gözle:

ExportOptionsPlist kullanarak xcodebuild aracını kullanarak iOS uygulamalarını komut satırından dağıtma. IPA dosyalarını linux sunuculara aktarmayı ve uygulamaları App Store'a dağıtmak için ITMSTransporter'ı kullanmayı deneyin.

9. Mobil SDK ve Swift Kütüphaneleri için CI

Mobil uygulamaların popülaritesi arttıkça, çoğu şirketin mobil uygulamaları daha hızlı oluşturmak için mimariye ihtiyacı vardır. Bu nedenle, kalitenin sağlanması ve mevcut kodun birden fazla uygulamada tekrar kullanılması için şirketler, yeniden kullanılabilir yazılım geliştirme kitleri (SDK'lar) ve kütüphaneler oluşturmaya başladılar, böylece kod birden fazla uygulamada kolayca yeniden kullanılabiliyordu. Kütüphane kodu birden fazla müşteriyi etkileyebildiği için, SDK'nın kod kalitesinin tüm istemcilerin gereksinimlerini karşıladığından emin olmak önemlidir. Şirketlerin çoğunda, ana uygulamalar için CI / CD altyapısı kurulumu vardır, ancak hiçbiri kütüphaneler ve SDK'lar için değildir. Gerçekte, kütüphaneler ve SDK'lar için sürekli entegrasyon, ana uygulamalar için CI'dan çok, hatta daha da önemlidir.

Mobil SDK için Sürekli Entegrasyon, burada Nevercode blog'unda bulunan ve benim Nevercode ile nasıl yapılabileceğini ancak şu anda kullandığınız diğer CI hizmetleriyle yapılabileceği örnek yazımdan biri olan bulut tabanlı CI servisleriyle sağlanabilir.

2019'a dört gözle:

İOS SDK'ları ve kitaplıkları için CI ekleme eğilimi yakın gelecekte kesinlikle artacaktır, bu nedenle tüm mobil SDK'larınızı ve kitaplıklarını CI sunucusunda edinin.

10. GitHub Eylemleri

GitHub, Swift Paketlerinin CI / CD'si için Linux tabanlı liman işçisi konteynerlerinden kullanılabilen GitHub Action hizmetini başlattı. Detaylı blog yazısı Swift paketlerini Github Action for Swift paketleri ile nasıl kurarsınız? Github Eylemleri, Github’ın içinde yerleşik olarak bulunan GitHub’ın kendi CI / CD çözümü olarak kabul edilebilir. Geliştiriciler GUI Editor'ı kullanarak veya koddan iş akışları oluşturabilirler.

Şu anda, bu hizmet Linux Docker tabanlı kurulumlarla sınırlıdır, ancak kim Gitongub eylemlerini kullanmak için macOS görüntüleri alabileceğimizi kim bilir. GitHub Eylemleri'nin yakın gelecekte iOS gelişimine ne getirdiğini bekleyip izleyebiliriz.

2019'a dört gözle:

İOS CI / CD için GitHub Actions yol haritasına bir göz atın.

Sonuç

2018'de, iOS uygulamalarını sorunsuz bir şekilde serbest bırakmak için birçok iyi şey oldu. Tüm bu haberleri aklımızda tutarak, 2019'a hazırlayabilir ve iOS sürümü ve CI / CD süreci için sırada ne olacağını görebiliriz. Umarım 2018'deki çoğu hikayeyi anlatmışımdır, lütfen ne düşündüğünüzü bildirin ve eğer bir şeyi kaçırdıysam bana ping atma

====================================

Bu yazı gibi XCBlog Gönderen XCTEQ? Açık kaynak projelerimizden bazılarını Github'ta beğenebilir veya Twitter'da ve LinkedIn'de bizi takip edebilirsiniz.