Sobes.tech
Middle+

Šta biste uradili ako bi se verzija vaše aplikacije za izdavanje srušila na mestu koje se razlikuje od mesta gde se ruši verzija za otklanjanje grešaka?

sobes.tech АИ

Одговор од АИ

Proverio bih razlike u konfiguracijama build-a: R8/ProGuard, uključivanje/isključivanje informacija za otklanjanje grešaka, zastavice za kompilaciju, zavisnosti (posebno tranzitivne). Pogledao bih logove i stek-trace iz verzije za objavljivanje. Koristio bih alate za praćenje performansi i padova (Crashlytics, Sentry). Sproveo bih A/B testiranje ili selektivno implementiranje za identifikaciju obrasca pada.

// Primer konfiguracije R8 pravila
-keep class com.example.MyClass {
    *;
}

// Primer dodavanja logcat-a u verziji za objavljivanje (obično je već uključen za debug buildove)
BuildConfig.DEBUG || Log.d("TAG", "Poruka loga");

Uporedio bih verzije biblioteka koje se koriste u obe verzije. Proverio bih implementaciju funkcija koje se mogu ponašati drugačije u optimizovanim i ne-optimizovanim verzijama, na primer, višestruko pokretanje niti ili upravljanje memorijom. Problem može biti povezan sa pravilima ProGuard-a koja su uklonila potrebni kod.