Dựa trên các thử nghiệm cá nhân của tôi, hóa ra điều gì đó dọc theo những dòng này là cần thiết cho các ứng dụng Android được tăng cường Firebase để biên dịch với ProGuard.
Trong mọi trường hợp, bạn phải thêm -keepnames class com.my.package.beans.** { *; }
nếu bạn đang sử dụng các đối tượng tùy chỉnh trong Firebase, ví dụ: đậu hoặc POJO.
căn cứ hỏa lực SDK 1.0.18:
-keepnames class com.firebase.** { *; }
-keepnames class com.shaded.fasterxml.jackson.** { *; }
-keepnames class org.shaded.apache.** { *; }
-keepnames class javax.servlet.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.commons.logging.impl.**
căn cứ hỏa lực SDK 1.1.1:
-keep class com.firebase.** { *; }
-keep class org.shaded.apache.** { *; }
-keepnames class com.shaded.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-dontwarn org.ietf.jgss.**
căn cứ hỏa lực SDK 2.0.0:
-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }
-keepnames class com.fasterxml.jackson.** { *; }
-keepnames class javax.servlet.** { *; }
-keepnames class org.ietf.jgss.** { *; }
-dontwarn org.w3c.dom.**
-dontwarn org.joda.time.**
-dontwarn org.shaded.apache.**
-dontwarn org.ietf.jgss.**
# Only necessary if you downloaded the SDK jar directly instead of from maven.
-keep class com.shaded.fasterxml.jackson.** { *; }
khu nghỉ mát cuối:
-keep class !com.my.package.** { *; }
Ghi chú:
Bất kỳ phương châm chính thức sẽ được hoan nghênh. Các chỉ thị -dontwarn
rõ ràng là nguy hiểm, mã có thể phá vỡ tại các điểm mà tôi chưa thử nghiệm. Hơn nữa, các quy tắc trên khá dễ chấp nhận và các quy tắc khác có thể tối ưu hóa tốt hơn APK của bạn.
Xem thêm [Configure ProGuard] (https : //firebase.google.com/docs/database/android/start/#proguard) – Kato