Flutter ile Mac olmadan iOS uygulamaları geliştirin ve dağıtın

Yayınlanan: 2019-08-23

Editö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

Temel hazırlık profillerini iOS geliştirici portalından indirin

Benzer şekilde, ön hazırlık profillerini Apple geliştirici portalından indirebiliriz.

iOS ön hazırlık profilleri

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.

Codemagic'te manuel kod imzalamayı ayarlama

Ş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:

Codemagic'teki yapı yapıtlarının listesi

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.

App Store dağıtım seçeneği

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:

App Store ön hazırlık profili

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.

Codemagic'te Oluştur bölümündeki Yayın modu

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.

Yerel uygulamalar simgesi

İşletmeniz için geleceğe dönük bir uygulama oluşturmak ister misiniz?

Beraber çalışalım