我有一個即將使用ProGuard進行混淆的庫。 「圖書館模式」幾乎適用於我的用例,即保留所有公共和受保護的班級和班級成員幾乎可以。 但是由於Java的可見性要求,一些成員不能被封裝爲私有或私有,因此它們是公共類,儘管它們不應該在庫中。我想讓他們混淆一下,使其更清楚地表明這些類不屬於公共api,以及獲得更好的混淆和更小的圖書館罐子。 有沒有辦法從proguard「keep」規則中排除一些項目而不是按名稱指定每個項目(使用'!')。 理想情況下,我想通過標註註釋來註釋這些類和成員,但據我所知,Proguard只能被告知保留項具有某些註釋。從Proguard的保留規則中排除一些類
4
A
回答
4
您只能確實保留項目。如果您想要排除某些班級成員,則必須列出或註釋您希望保留的班級成員。指定類名稱時,可以提供一個列表,可以選擇「!」排除名稱。指定類成員名稱和類型時,這是不可能的。不過,在這兩種情況下,都可以使用通配符。如果您選擇適合您的內部類特殊的名字,這可能工作:
-keep public class * {
public protected *** !myInternalField*;
public protected *** !myInternalMethod*(...);
}
+0
謝謝。將它標記爲答案,雖然不幸的是我沒有真正回答我的問題,但是告訴我它目前不支持。 – Sebastian
相關問題
- 1. 如何從保留類標記proguard中排除特定類
- 2. Proguard保留R類
- 3. Proguard保留類名?
- 4. ProGuard的規則
- 5. Proguard keepclassmembers持續保留類
- 6. 在Proguard中保留帶註釋的類
- 7. flex中的排除規則
- 8. 重寫規則排除某些模式
- 9. htaccess從規則中排除頁面
- 10. 嘗試從htaccess規則中排除URL
- 11. 排除proguard的
- 12. 保留使用反射的類Android Proguard
- 13. NCover排除規則
- 14. ProGuard - 如何正確使用Android?要保留哪些類和庫?
- 15. 魷魚的規則「undocumentedapi」不排除一些getter方法
- 16. 在proguard中,如何保留一組類的方法名?
- 17. 一些規則排序文本
- 18. Billdesk Android SDK的Proguard規則
- 19. ProGuard:保留私人內部分類
- 20. Proguard - 排除庫
- 21. 排除一些目錄,而使用規則重定向到https
- 22. 如何排除一些規則了StyleCop在Visual Studio 2013
- 23. Java ProGuard。類保留(不要刪除),但允許被混淆
- 24. Proguard的配置,以留下一些內部類單獨
- 25. 保留排序規則之間的字符
- 26. 從Android proguard中排除Java SE庫
- 27. 如何從proguard中排除.so文件?
- 28. ProGuard的「保留」參數中的泛化
- 29. Proguard保持關於排除.jar類的失敗
- 30. 從htaccess重寫規則中排除一組文件
我結束了標註有問題的元件,並寫了一個小注解處理器轉儲,所有成員保持由一個上市一個ProGuard的配置文件使用我的自定義邏輯:添加所有沒有該註釋的有效公共/受保護成員。 – Sebastian