Flutter ile Mac olmadan iOS uygulamaları geliştirin ve dağıtın
Yayınlanan: 2019-08-23Editörden not: Miquido'da, Flutter sevenler topluluğunu destekliyoruz ve Flutter ağı genelinde bilgi paylaşımına katkıda bulunmaktan her zaman mutluyuz. Bugün, Flutter ile ve macOS cihazı olmadan iOS uygulaması geliştirme konusunu ele alan Codemagic'in konuk makalesini sunuyoruz. Her parçasının tadını çıkarın!
Çoğu zaman, iOS uygulamaları macOS makinelerinden geliştirilir ve dağıtılır. macOS olmadan iOS platformu için uygulamalar geliştirmeyi hayal etmek zor. Ancak Flutter ve Codemagic kombinasyonu ile iOS uygulamalarını macOS kullanmadan geliştirebilir ve dağıtabilirsiniz. Bir önceki yazımızda, iOS uygulamalarını Mac olmadan kod imzalama işlemini anlatmıştık. Bu yazıda, Comagic-Demo uygulaması örneğinde, Linux üzerinde Flutter uygulamaları geliştirme ve Codemagic ile uygulama imzalama üzerinde tam kontrole sahip olmak için özel/manuel kod imzalama kullanma sürecini ayrıntılı olarak ele alacağız.
Linux'ta Flutter uygulamaları geliştirme
Flutter, aynı kaynak koddan iOS ve Android uygulamaları geliştirmeyi sağlayan platformlar arası bir mobil uygulama geliştirme çerçevesidir. Ancak, iOS uygulamaları geliştirmek için kullanılan Apple'ın yerel çerçeveleri, Linux veya Windows gibi diğer platformlarda derlenemez. Yerel iOS bileşenleri, iOS uygulamalarını geliştirmek ve dağıtmak için bir macOS veya Darwin gerektirir. Ancak Flutter gibi teknolojiler, Linux veya Windows üzerinde platformlar arası uygulamalar geliştirmemize izin veriyor ve ardından Codemagic CI/CD çözümünü kullanarak uygulamaları Google Play Store veya Apple App Store'a dağıtabiliyoruz.
Linux'ta Flutter uygulaması edinme
Android uygulamaları Linux platformundan oluşturulabilir, test edilebilir ve yayınlanabilir. Linux'ta Flutter uygulaması geliştirmeyi etkinleştirmek için bu Android özelliğinden yararlanabiliriz. Flutter uygulamamızın adı Comagic-Demo. Linux'ta Android ve iOS için nasıl oluşturulacağını göstermek için bu uygulamayı kullanacağız. Ancak unutmayın ki iOS'ta değil, yalnızca Linux'ta Android'e karşı geliştirebiliriz. Linux'ta Android uygulaması geliştirirken App Store'a dağıtılabilecek iOS uygulamasını almaya devam edeceğiz. Comagic-Demo'muzu farklı yollarla Linux'a getirebiliriz.
Bir Linux makinesi edinin
Zaten üzerinde Linux yüklü bir bilgisayarınız varsa, tüm süreç kolaydır. Linux makinesine Android SDK ve Flutter yüklemeniz yeterlidir. Comagic-Demo uygulamasını bir kez klonladığımızda, hemen üzerinde çalışmaya başlayabiliriz.
Docker kapsayıcıları oluşturun
Linux'ta Flutter uygulaması edinmenin başka bir yolu da Docker kullanmaktır. Docker ekosistemine aşina iseniz, Android SDK ve Flutter'ın kurulu olduğu bir Dockerfile oluşturabilirsiniz. Dockerhub'da birçok Android Docker dosyası var, sadece bu görüntüleri Flutter SDK ile genişletmemiz gerekiyor. Android ve Flutter ortamını Docker kapsayıcısına almak için burada örnek bir Android docker görüntüsünü genişleten basit bir Dockerfile oluşturalım. Dockerfile, uygulamayı konteynere kopyalamalı ve Flutter Android ortamını çalıştırmalıdır. Comagic-Demo için örnek Dockerfile şöyle görünecektir:
runmymind/docker-android-sdk'DEN RUN mkdir /codemagic-demo WORKDIR /codemagic-demo EKLE . /codemagic-demo RUN apt-get update && \ apt-get install -y lcov git-core curl unzip && \ git klon https://github.com/flutter/flutter.git && \ /flutter/bin/flutter doktor && \ apt-get remove -y curl unzip && \ uygun autoremove -y && \ rm -rf /var/lib/apt/lists/* ENV YOL $ YOL:/flutter/bin/önbellek/dart-sdk/bin:/flutter/bin ÇALIŞTIR çarpıntı doktoru
Bu kod parçacığı yalnızca örnekleme amaçlıdır, ancak Dockerfile'ı ihtiyaçlarınıza göre özelleştirebilirsiniz. Dockerfile ve Docker'ı yükledikten sonra, Docker'ı kullanarak Codemagic uygulamasını edinebilirsiniz.
$ docker build -t codemagic-demo . $ docker run --name codemagic-demo
Bu komutları çalıştırdığımızda, Flutter ortamı ile çalışan Docker konteynerine sahip olacağız.
Dockerising Futter uygulamaları farklı bir konu olacak ve bunu bir sonraki gönderide ayrıntılarıyla ele alacağız.
App Store Connect'ten kod imzalama varlıkları oluşturma
Sign iOS uygulamalarını kodlamak için bir Apple geliştirici hesabına, bir geliştirme ve dağıtım sertifikasına, uygulama kimliğiniz ve uygulama için oluşturulmuş ön hazırlık profillerine ihtiyacınız vardır. Kod imzalama etkinliklerinin ayrıntılarını bir önceki gönderide ele almıştık. Codemagic'te iOS uygulamalarının geliştirme veya hata ayıklama derlemeleri için manuel kod imzalamayı yapılandırmak için aşağıdakilere ihtiyacımız var:
- .P12 formatında geliştirme veya dağıtım sertifikası
- App Store Connect veya Apple Developer portalından indirilen ön hazırlık profili
- iOS uygulamasının paket tanımlayıcısı
Apple Developer portalındaki Certificates, Identifiers ve Profiles bölümlerinden hem sertifikayı hem de provizyon profillerini indirebiliriz. içinde
Benzer şekilde, ön hazırlık profillerini Apple geliştirici portalından indirebiliriz.
iOS uygulamamızı Codemagic'te kod imzalamak için hem bir sertifikaya hem de bir ön hazırlık profiline ihtiyacımız var, bu nedenle bu dosyaları daha sonra kullanmak üzere kaydedin.
Xcode proje dosyalarını güncelleme
Şimdi, Apple Developer portalından tüm kod imzalama varlıklarına sahibiz. Ardından, doğru ekip ve ön hazırlık profili ile manuel kod imzalamayı kullanmak için Xcode proje dosyasını ayırmamız gerekiyor. Bunu Xcodeproj Gem kullanarak bir Ruby betiği kullanarak yapabiliriz veya sadece i os/YOUR_APP.xcodeproj/project.pbxproj dosyasındaki aşağıdaki alanları değiştirebiliriz.

- Geliştirme Ekibi = YOUR_DEVELOPMENT_TEAM_ID
- ProvisioningStyle = Manuel
- PROVISIONING_PROFILE_SPECIFIER = NAME_OF_YOUR_PROVISIONING_PROFILE
Codemagic-Demo uygulamamızda, Xcode proje dosyasını burada GitHub üzerinde düzenlememiz gerekiyor. Dahili derlemeler için hata ayıklama yapılandırması ve App Store derlemeleri için sürüm yapılandırması için bu değişiklikleri yaptığımızdan emin olmalıyız. Project.pbxproj'daki değerleri ayarladıktan sonra, iOS uygulamasını Codemagic'ten sorunsuz bir şekilde dağıtmaya hazırız.
Codemagic'te manuel kod imzalamayı ayarlama
Linux üzerinde geliştirme yaparken, Xcode ve iOS araçları Linux üzerinde yüklenemediğinden veya çalıştırılamadığından yalnızca Android uygulamasının durumunu görebiliyoruz. Swift ve iOS araçlarını Linux'a getirmek için devam eden bazı çabalar var ancak bu çok zaman alacak. Uygulamaları dağıtmaya hazır olduğumuzda, Codemagic kullanarak uygulama için CI/CD'yi kolayca kurabiliriz, buradaki Başlangıç Kılavuzuna bakın. OnCodemagic, Apple Developer portalından indirdiğimiz sertifika ve provizyon profilini yükleyerek Yayınla bölümünden iOS kod imzalamayı etkinleştirebiliriz. Codemagic uygulamasında Ayarlar → Yayınla → iOS kod imzalama → El ile seçeneğine gidin ve sertifikanızı ve ön hazırlık profilinizi buraya yükleyin.
Şimdi derlemeyi çalıştırdığınızda, sağlanan cihazlarda dağıtılabilen IPA dosyası biçiminde iOS uygulamasını alacaksınız. Codemagic'teki derleme yapıtlarının listesi şöyle görünecektir:
Artifacts bölümünde görülebileceği gibi, kilitlenme raporları için codemagic_demo.ipa'nın yanı sıra dSYMs dosyalarına sahibiz. Bu uygulamayı, ön hazırlık profiline eklenen herhangi bir iOS cihazına yükleyebilir ve iOS uygulamamızı test edebiliriz. Orada herhangi bir hata görürsek, her zaman Linux ortamına geri dönebilir ve bu hataları düzeltebiliriz.
iOS uygulamasını App Store'a dağıtma
Şu an itibariyle, dahili olarak test etmek için iOS uygulamasının hata ayıklama sürümünü oluşturduk. Benzer şekilde iOS uygulamasını App Store'a dağıtabiliriz. Uygulamayı App Store'a dağıtmaya hazır olduğumuzda, uygulamayı Sürüm modunda oluşturmamız gerekir. Bunu dağıtım sertifikası ve üretim sağlama profilini kullanarak yapabiliriz. Sertifika ve profilleri benzer şekilde üretebiliriz. Ancak provizyon profilini oluştururken App Store dağıtımını seçtiğinizden emin olmalıyız.
Dağıtım ön hazırlık profili, iOS uygulamasını herhangi bir cihazda çalıştırır ve cihazları ön hazırlık profiline açıkça eklememiz gerekmez. App Store ön hazırlık profili şöyle görünecektir:
Bir kez, iOS dağıtım sertifikasına ve üretim ön hazırlık profiline sahip olduğumuzda, Yayın modunu seçebiliriz. Aşağıda gösterildiği gibi Codemagic'te bölüm oluşturun.
Ayrıca derleme argümanlarını hata ayıklama yerine serbest bırakılacak şekilde ayarladık. Yayınla bölümünde, uygulamanın App Store sürümünü oluşturmak için dağıtım sertifikasını ve üretim sağlama profilini yüklememiz gerekiyor.
Codemagic derleme yapılarını oluşturduğunda, daha önce iTunesConnect olarak bilinen App Store Connect'i, App Store yönergelerini izleyerek oluşturabilir ve uygulamayı inceleme için gönderebiliriz.
Çözüm
Platformlar arası mobil uygulama geliştirme çerçevesi ile Codemagic gibi sihirli bir CI/CD çözümünün birleşimiyle, iOS uygulama geliştirme için bir Mac'e sahip olmak hiç de zorunlu değil. iOS için geliştirme yaparken uygulamada hata ayıklamada bazı sorunlar olabilir, ancak Flutter ve Codemagic kombinasyonunu kullanarak iOS uygulamaları geliştirmek ve App Store'da yayınlamak tamamen mümkündür.
İşletmeniz için geleceğe dönük bir uygulama oluşturmak ister misiniz?
Beraber çalışalım