Sobes.tech
Middle+

Əgər tətbiqin buraxılış yığması düzgün işləyən yerdə çöksəydi, nə edərdiniz?

sobes.tech Süni İntellekt

AI-dan cavab

  1. Logların və çökmə hesabatlarının toplanması: Release versiyada qeydiyyatı aktivləşdirin və yoxlayın (məsələn, Firebase Crashlytics və ya analitik istifadə edərək). Mövcud bütün çökmə hesabatlarını toplayın.

  2. Yığmalar arasındakı fərqlərin analizi:

    • Kompilyator optimallaşdırmaları: Release yığması tez-tez kodu ofuskat etmək, minimallaşdırmaq və optimallaşdırmaq üçün ProGuard/R8 istifadə edir. ProGuard/R8 qaydalarını səhvlər üçün yoxlayın, lazım olan kod və ya resursları silmiş və ya tətbiqin davranışını dəyişmiş ola bilər. mapping.txt faylını deobfuscate etmək üçün öyrənin.
    • İmza (signing): Release yığmasının düzgün açar ilə imzalandığından əmin olun.
    • Debuggable bayrağı: Release yığmasında android:debuggable-ın false olduğundan əmin olun.
    • Asılılıqlar arasındakı fərqlər: Hər iki yığma növündə istifadə olunan kitabxanaların versiyalarını yoxlayın.
    • Yığma konfiqurasiyaları (build flavors/types): Gradle fayllarını yoxlayın, release üçün xüsusi ayarların olub-olmadığını və davranışa təsir edə biləcəyini (məsələn, fərqli API URL-ləri, funksiyaların deaktiv edilməsi).
    • Resursların yoxlanması: Bütün lazım olan resursların (drawable, layout, strings) mövcud və əlçatan olduğundan əmin olun.
  3. Stack trace deobfuscation: Əgər çökmə ofuskat kodda baş verirsə, mapping.txt istifadə edərək stack trace-i deobfuscate edin və xəta hansı kod hissəsində baş verdiyini anlayın.

  4. Yayımlama şəraitinə yaxın şəraitdə xətanı təkrarlamaq:

    • ProGuard/R8-in bəzi hissələrini deaktiv edərək release-yə bənzər build hazırlamağa çalışın, axtarış sahəsini daraltmaq üçün.
    • Lokal test build yaradın, mümkün qədər release-ə bənzər (məsələn, ProGuard/R8 istifadə edərək, amma release imzası olmadan).
  5. Optimizasiyaları və ofuskatı mərhələli şəkildə deaktiv edin: ProGuard/R8 optimizasiyalarını mərhələli şəkildə deaktiv edin (məsələn, ofuskatı deaktiv edin, sonra minimallaşdırma) və hansı optimizasiyanın problemi törətdiyini müəyyən edin.

  6. Release build-də loglama: Kritik kod hissələrinə müvəqqəti loglar əlavə edin, beləliklə, xəta baş verənə qədər icraatı izləyin.

  7. Xarici amilləri yoxlayın: Davranışın mühitdən asılı ola biləcəyini nəzərə alın (məsələn, internet bağlantısı, cihazda Android versiyası).

  8. Debugger istifadə edin: Əgər mümkünsə, cihazda release build-ə qoşulun (bu, debuggable false olsa çətin ola bilər) və ya emulator istifadə edərək təkrarlama və debug etməyə çalışın.

  9. Regressiya (əgər mümkünsə): Problemin hansı mərhələdə ortaya çıxdığını yoxlayın (məsələn, yeni funksiya əlavə etdikdən və ya kitabxananı yenilədikdən sonra).

  10. Məlumatlı problemləri axtarın: ProGuard/R8 ilə əlaqəli məlum problemləri yoxlayın.

android {
    buildTypes {
        release {
            // Debug üçün müvəqqəti ofuskatı deaktiv etmək nümunəsi
            minifyEnabled true // Minimallaşdırmanı saxlayırıq
            shrinkResources true // Resursların sıxışdırılmasını saxlayırıq
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            // müvəqqəti ofuskatı deaktiv et
            // consumerProguardFiles 'proguard-debug.pro' // Debug qaydalarını əlavə edin
        }
    }
}