Sparround

Build, flavor və release

Flutter üç build rejimi verir və onları qarışdırmaq tipik səhvdir:

  • debug — hot reload, assertion-lar, optimallaşdırma yoxdur. Ölçmə üçün yararsızdır
  • profile — optimallaşdırılmış, amma profiling alətləri açıqdır. Performans ölçməsi məhz burada aparılır
  • release — tam optimallaşdırılmış, debug alətləri bağlı. Store-a bu gedir

Flavor-lar eyni koddan fərqli məhsul variantları qurmağa imkan verir: dev, staging, production. Hər flavor öz tətbiq adı, ikonu, bundle id-si və API ünvanı ilə gəlir — nəticədə üçü eyni cihazda yanaşı qurula bilir, bu isə test üçün vacibdir.

MövzuAndroidiOS
Buraxılış artefaktıApp Bundle (`.aab`) — store üçün tövsiyə olunanIPA arxivi
İmzalamaKeystore + `key.properties`, repo-dan kənardaSertifikat + provisioning profile
Konfiqurasiya`build.gradle` product flavorsXcode schemes + configurations
Ölçünün azaldılması`--split-per-abi` və ya App BundleApp Store özü nazikləşdirir (app thinning)

Interview ipucu. Buraxılışla bağlı sualda təhlükəsizlik nöqtəsini özün qaldır: imzalama açarları və API sirləri repo-da saxlanmamalıdır. Android-də key.properties .gitignore-a düşür və CI-da secret kimi verilir; API açarları isə --dart-define ilə build zamanı ötürülür. Vacib nüans: --dart-define ilə verilən dəyər də tətbiq binary-sində olur — o, konfiqurasiya üçün uyğundur, həqiqi sirr üçün yox; həqiqi sirr backend-də qalmalıdır.

📚 Mənbələr və sənədlər