Ikuti praktik terbaik pengiriman berkelanjutan (CD) dengan Flutter untuk memastikan bahwa aplikasi Anda dikirimkan ke penguji beta dan diuji secara teratur tanpa perlu manipulasi manual.
jalur cepat
Tutorial ini menunjukkan cara mengintegrasikan fastlane (toolkit open source) ke dalam alur kerja pengujian dan integrasi berkelanjutan (CI) yang ada seperti Travis atau Cirrus.
Pengaturan lokal Sangat
disarankan untuk menguji proses pembangunan dan penerapan secara lokal sebelum pindah ke awan. Anda juga dapat menerapkan penerapan berkelanjutan dari mesin lokal Anda.
- fastlane:
gem install fastlanebrew install fastlane. Fastlane. - Flutter , , ,
-
flutter build appbundle; -
flutter build ios --release --no-codesign.
-
- Fastlane .
-
fastlane init[project]/android. -
fastlane init[project]/ios.
-
- ,
Appfile.
- ,
package_name[project]/android/fastlane/AppfileAndroidManifest.xml. - ,
[project]/ios/fastlane/AppfileInfo.plist.apple_id,itc_team_id,team_id.
- ,
- .
- Supply ,
fastlane supply initPlay Store . .json - . - ITunes Connect
Appfileapple_id.FASTLANE_PASSWORDiTunes Connect. iTunes/TestFlight.
- Supply ,
- .
- Android : . .apk, « ». « » .aab/.apk, Play Store, Play Store.
- , . . Play Store.
- .
- gradle release,
android.buildTypes.release[project]/android/app/build.gradle.
- iOS, TestFlight App Store, , .
- Apple Developer Account.
-
[project]/ios/Runner.xcworkspace/.
- Android : . .apk, « ». « » .aab/.apk, Play Store, Play Store.
-
Fastfile.
- Android - Fastlane Android.
lane,upload_to_play_store.aab../build/app/outputs/bundle/release/app-release.aab, ,flutter build. - Untuk iOS, ikuti panduan penerapan beta Fastlane iOS . Semua pengeditan bisa sesederhana menambahkan
lane, yang memanggilbuild_ios_appdenganexport_method: 'app-store'danupload_to_testflight. Di iOS, build tambahan akan diperlukan, karena ituflutter buildmembuat.app, bukan arsip.ipasuntuk rilis.
- Android - Fastlane Android.
Anda sekarang siap untuk menerapkan secara lokal atau memigrasi penerapan Anda ke sistem integrasi berkelanjutan (CI).
Menerapkan Secara Lokal
- Bangun aplikasi Anda dalam mode rilis.
-
flutter build appbundle... -
flutter build ios --release --no-codesign... Tidak perlu mendaftar sekarang, karena fastlane akan melakukan tanda tangan saat mengarsipkan.
-
- Jalankan skrip Fastfile di setiap platform.
-
cd android, lalufastlane [ lane]. -
cd ios, lalufastlane [ lane].
-
Mengonfigurasi Build dan Cloud Deployment
Pertama, ikuti petunjuk di bagian penyiapan lokal yang dijelaskan di bagian Penyiapan lokal untuk memastikan proses tersebut bekerja dengan benar sebelum pindah ke sistem cloud seperti Travis.
Hal utama yang perlu diperhatikan adalah karena instance cloud bersifat sementara dan tidak dapat diandalkan, Anda tidak boleh meninggalkan kredensial Anda, seperti JSON dari akun layanan Play Store atau sertifikat distribusi iTunes, di server.
Sistem Continuous Integration (CI) seperti Cirrus biasanya mendukung variabel lingkungan terenkripsi untuk menyimpan data pribadi.
Lakukan semua tindakan pencegahan untuk tidak mencetak nilai variabel ini ke konsol dalam skrip pengujian Anda. Variabel ini juga tidak boleh tersedia dalam permintaan penarikan sampai mereka digabungkan sehingga penyerang tidak dapat membuat permintaan penarikan yang akan mencuri rahasia ini. Berhati-hatilah saat berinteraksi dengan rahasia ini dalam permintaan tarik yang Anda terima dan gabungkan.
- Jadikan kredensial singkat.
- Di Android:
- Hapus kolom
json_key_filedariAppfiledan simpan konten string JSON dalam variabel terenkripsi di sistem CI Anda. Gunakan argumenjson_key_datainupload_to_play_storeuntuk membaca variabel lingkungan langsung ke AndaFastfile. - (, base64) . CI
-
echo "$PLAY_STORE_UPLOAD_KEY" | base64 --decode > /home/cirrus/[directory # , gradle].keystore
- Hapus kolom
- iOS:
-
FASTLANE_PASSWORDCI. - CI . Fastlane Match .
-
- Di Android:
- Gemfile
gem install fastlaneCI, fastlane . .
-
[project]/android[project]/iosGemfile, : -
source "https://rubygems.org" gem "fastlane" -
bundle updateGemfile.Gemfile.lock. -
bundle exec fastlanefastlane.
-
- CI,
.travis.yml.cirrus.yml, .
- Linux macOS.
- Xcode macOS (, o
sx_image: xcode9.2). - . Fastlane CI CI.
- , , , :
- Bundler
gem install bundler. - Android , Android SDK
ANDROID_SDK_ROOT. -
bundle install[project]/android[project]/ios. - , Flutter SDK
PATH.
- Bundler
- CI:
-
flutter build appbundleflutter build ios --release --no-codesign, . cd androidcd iosbundle exec fastlane [ lane]
. Cirrus Flutter.
, .
-