提问人:Marat 提问时间:9/28/2023 更新时间:9/29/2023 访问量:108
如何防止 R8 在发布版本中删除公共 Compose Preview 方法?
How to prevent R8 from removing public Compose Preview methods in release builds?
问:
我正在使用 Airbnb/Showkase 库将所有预览收集到目录中,并且正在探索将该目录浏览器活动的入口点放在应用程序生产版本的管理设置页面的某个位置的想法。
当我运行调试版本时,Showkase 确实会收集所有 compose 预览方法并显示它们。但是在发布版本中,这些方法被删除,因此在目录中无法显示任何内容。
有没有办法让 R8 在发布版本中保留 Compose Preview 方法?也许是某种保护规则?
答:
1赞
Derek K
9/29/2023
#1
Showkase 库的自述文件提到了在使用 Proguard 时添加以下规则:
-keep public class * extends com.airbnb.android.showkase.models.ShowkaseProvider
应该不需要额外保留所有 Preview 批注方法。
评论
-keep class * { @androidx.compose.ui.tooling.preview.Preview <methods>; }
@Preview
-keepclasseswithmembers class * { @androidx.compose.ui.tooling.preview.Preview <methods>; }