Menerbitkan Apl iOS ke App Store dengan GitLab dan fastlane

Menerbitkan Apl iOS ke App Store dengan GitLab dan fastlane

Cara GitLab dengan fastlane mengumpul, menandatangani dan menerbitkan aplikasi iOS ke App Store.

Kami baru-baru ini siarkan tentang cara membina dan menjalankan aplikasi Android dengan cepat dengan GitLab dan fastlane. Di sini kita akan melihat cara membina dan menjalankan apl iOS dan menerbitkannya ke TestFlight. Lihat betapa hebatnya Saya membuat perubahan pada iPad Pro dengan IDE Web GitLab, saya mengambil pemasangan dan mendapatkan kemas kini kepada versi ujian aplikasi pada iPad Pro yang sama tempat saya membangunkannya.

Di sini kita akan ambil apl iOS ringkas pada Swift, dengan siapa saya merakam video itu.

Beberapa perkataan tentang konfigurasi Apple Store

Kami memerlukan apl App Store, sijil pengedaran dan profil peruntukan untuk menggabungkan segala-galanya.

Perkara yang paling sukar di sini ialah menyediakan hak tandatangan di App Store. Saya harap anda boleh memikirkan perkara ini sendiri. Jika anda baru, saya akan menunjukkan anda ke arah yang betul, tetapi kami tidak akan bercakap tentang selok-belok mengurus sijil Apple di sini, dan ia sentiasa berubah. Siaran ini akan membantu anda bermula.

Apl Saya

Anda memerlukan apl dalam App Store Connect supaya anda mempunyai ID untuk konfigurasi .xcodebuild. Profil dan ID aplikasi menggabungkan binaan kod, harga dan ketersediaan serta konfigurasi TestFlight untuk mengedarkan aplikasi ujian kepada pengguna. Jangan lakukan ujian awam, ujian peribadi akan mencukupi jika anda mempunyai kumpulan kecil, persediaan mudah dan tidak memerlukan kebenaran tambahan daripada Apple.

Profil permulaan

Selain persediaan apl, anda memerlukan kunci pengedaran dan pembangunan iOS yang dibuat dalam bahagian Sijil, Pengecam & Profil pada konsol Pembangun Apple. Semua sijil ini boleh digabungkan ke dalam profil peruntukan.

Pengguna yang akan disahkan perlu boleh membuat sijil, jika tidak, langkah-langkahnya sijil dan mengeluh anda akan melihat ralat.

pilihan lain

Selain kaedah mudah ini, terdapat cara lain untuk mengkonfigurasi sijil dan profil. Jadi, jika anda bekerja secara berbeza, anda mungkin perlu menyesuaikan diri. Perkara yang paling penting ialah anda memerlukan konfigurasi .xcodebuild, yang akan menunjuk ke fail yang diperlukan, dan rantai kunci mesti tersedia pada komputer binaan untuk pengguna di bawah namanya yang dijalankan oleh pelari. Untuk tandatangan digital kami menggunakan fastlane, dan jika terdapat masalah atau anda ingin mengetahui lebih lanjut, lihat butirannya dokumentasi tentang tandatangan digital.

Dalam contoh ini saya menggunakan pendekatan sijil dan mengeluh, tetapi untuk kegunaan sebenar ia mungkin lebih sesuai sepadan dengan.

Menyediakan GitLab dan fastlane

Menyediakan CI Runner

Setelah mengumpul semua data ini, kami beralih kepada konfigurasi pelari GitLab pada peranti MacOS. Malangnya, anda hanya boleh membuat apl iOS pada MacOS. Tetapi segala-galanya boleh berubah, dan jika anda menjangkakan kemajuan dalam bidang ini, perhatikan projek seperti itu xcbuild ΠΈ tanda, dan tugas dalaman kami gitlab-ce#57576.

Menyediakan pelari adalah sangat mudah. Ikut semasa arahan untuk menyediakan GitLab Runner pada macOS.

Catatan. Pelari mesti menggunakan program boleh laku shell. Ini diperlukan untuk membina iOS pada macOS untuk berfungsi secara langsung sebagai pengguna dan bukannya melalui bekas. Jika anda menggunakan shell, pembinaan dan ujian dilakukan sebagai pengguna pelari, terus pada hos binaan. Ia tidak selamat seperti bekas, jadi lebih baik semak imbas dokumentasi keselamatanjadi anda tidak terlepas apa-apa.

sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
cd ~
gitlab-runner install
gitlab-runner start

Rantai Kunci Apple mesti dikonfigurasikan pada hos ini dengan akses kepada kunci yang perlu dibina oleh Xcode. Cara paling mudah untuk menguji ini adalah dengan log masuk sebagai pengguna yang akan menjalankan binaan dan cuba membinanya secara manual. Jika sistem meminta akses rantai kunci, pilih Sentiasa Benarkan CI berfungsi. Mungkin berbaloi untuk masuk dan menonton beberapa saluran paip pertama untuk memastikan mereka tidak meminta rantai kunci lagi. Masalahnya ialah Apple tidak memudahkan kami menggunakan mod Auto, tetapi sebaik sahaja anda menggunakannya, semuanya akan baik-baik saja.

laluan cepat init

Untuk menggunakan fastlane dalam projek, jalankan fastlane init. Ikut saja arahan untuk memasang dan menjalankan fastlane, terutamanya dalam bahagian tentang Fail permata, kerana kami memerlukan pelancaran yang pantas dan boleh diramal melalui saluran paip CI automatik.

Dalam direktori projek anda, jalankan arahan ini:

xcode-select --install
sudo gem install fastlane -NV
# Alternatively using Homebrew
# brew cask install fastlane
fastlane init

fastlane akan meminta konfigurasi asas dan kemudian mencipta folder fastlane dalam projek dengan tiga fail:

1. fastlane/Appfile

Tidak ada yang rumit di sini. Cuma pastikan ID Apple dan ID Apl anda betul.

app_identifier("com.vontrance.flappybird") # The bundle identifier of your app
apple_id("[email protected]") # Your Apple email address

2. fastlane/Fastfile

Fastfile mentakrifkan langkah membina. Kami menggunakan banyak ciri terbina dalam fastlane, jadi semuanya jelas di sini juga. Kami mencipta satu baris yang menerima sijil, melaksanakan pemasangan dan memuat naiknya ke TestFlight. Anda boleh membahagikan proses ini kepada tugasan yang berbeza jika perlu. Semua operasi ini (get_certificates, get_provisioning_profile, gym ΠΈ upload_to_testflight) sudah termasuk dalam fastlane.

Aktiviti get_certificates ΠΈ get_provisioning_profile berkaitan dengan pendekatan menandatangani sijil dan mengeluh. Jika anda menggunakan sepadan dengan atau apa sahaja, buat perubahan.

default_platform(:ios)

platform :ios do
  desc "Build the application"
  lane :flappybuild do
    get_certificates
    get_provisioning_profile
    gym
    upload_to_testflight
  end
end

3. fastlane/Gymfile

Ini adalah fail pilihan, tetapi saya menciptanya secara manual untuk menukar direktori output lalai dan meletakkan output dalam folder semasa. Ini memudahkan CI. Jika berminat, baca tentang gym dan parameternya dalam dokumentasi.

https://docs.fastlane.tools/actions/gym/

Ours .gitlab-ci.yml

Jadi, kami mempunyai pelari CI untuk projek itu, dan kami bersedia untuk menguji saluran paip. Mari lihat apa yang kita ada .gitlab-ci.yml:

stages:
  - build

variables:
  LC_ALL: "en_US.UTF-8"
  LANG: "en_US.UTF-8"
  GIT_STRATEGY: clone

build:
  stage: build
  script:
    - bundle install
    - bundle exec fastlane flappybuild
  artifacts:
    paths:
    - ./FlappyBird.ipa

ВсС ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ! Kami menetapkan format kepada UTF-8 untuk laluan cepat seperti yang diperlukan, gunakan strategi clone dengan melaksanakan program shell, supaya kami mempunyai ruang kerja yang bersih untuk setiap perhimpunan, dan hanya hubungi flappybuild laluan cepat, seperti yang dilihat di atas. Hasilnya, kami mendapat pemasangan, tandatangan dan penggunaan pemasangan terbaharu dalam TestFlight.

Kami juga mendapatkan artifak dan menyimpannya dengan pemasangan. Sila ambil perhatian bahawa format .ipa ialah boleh laku ARM bertandatangan yang tidak dijalankan dalam simulator. Jika anda mahukan output untuk simulator, cuma tambahkan sasaran binaan yang menghasilkannya, dan kemudian masukkannya dalam laluan artifak.

Pembolehubah persekitaran lain

Terdapat beberapa pembolehubah persekitaran di sini yang menjadikan semuanya berfungsi.

FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD ΠΈ FASTLANE_SESSION

Pengesahan untuk fastlane diperlukan untuk mengesahkan dalam App Store dan memuat naik ke TestFlight. Untuk melakukan ini, buat kata laluan untuk aplikasi yang akan digunakan dalam CI. Butiran di sini.

Jika anda mempunyai pengesahan dua faktor, buat pembolehubah FASTLANE_SESSION (arahan di sana).

FASTLANE_USER ΠΈ FASTLANE_PASSWORD

Itu sijil dan mengeluh dipanggil profil permulaan dan sijil atas permintaan, anda perlu menetapkan pembolehubah FASTLANE_USER ΠΈ FASTLANE_PASSWORD. Butiran di sini. Ini tidak perlu jika anda menggunakan kaedah tandatangan yang berbeza.

Kesimpulannya

Anda boleh melihat bagaimana ia berfungsi dalam contoh mudah saya.

Saya harap ini membantu dan memberi inspirasi kepada anda untuk bekerja dengan binaan iOS dalam projek GitLab. Ini satu lagi Petua CI untuk fastlane, untuk berjaga-jaga. Anda mungkin mahu menggunakan CI_BUILD_ID (untuk binaan tambahan) kepada versi kenaikan secara automatik.

Satu lagi ciri hebat fastlane ialah tangkapan skrin automatik untuk App Store, yang sangat mudah untuk disediakan.

Beritahu kami dalam ulasan tentang pengalaman anda dan kongsi idea anda untuk menambah baik GitLab untuk pembangunan apl iOS.

Sumber: www.habr.com

Tambah komen