在使用统一编辑器工具构建.aab时,我在配置Proguard以防止缩小Google和中的java库时遇到了问题,使用以下配置:
生成设置:创建Symbols.zip -调试压缩方法- LZ4
项目设置-播放器-其他: API最低-5目标API - 33脚本后端- IL2CPP (.NET标准2.1) IL2CPP生成-最快的ARMv7和ARM64条形引擎代码-真
发布设置:自定义Proguard文件Minify: R8 - false版本- true
资产\Plugins\Android中的自定义Proguard文件:
-keep public class com.google.play.core.**{
public *;
}
-keep public class com.google.play.common.**{
public *;
}
-keep public class com.google.play.appbundle.**{
public *;
}
-keep public class com.google.play.assetdelivery.**{
public *;
}
-keepattributes *Annotation*
-dontobfuscate
这是从mainTemplate.gradle构建文件中链接的。
使用Google插件构建这个插件将继续删除这些方法和接口,导致应用程序在启动时崩溃。我已经通过引入每一个元素来测试上面的保护程序,这些元素纠正了一些问题,但仍然在从play.core中删除接口。
注意:我没有包含Stack跟踪,因为它们指向插件库中的特定方法和接口,这些方法和接口是通过将每个异常添加到上面的Proguard文件来逐步修复的,但仍然没有保留所有函数。
我跟踪了多个其他线程,说明了同样的问题-删除库文件夹,使用自定义.gradle,降低所有Google的级别(1.7.0版)。这以前使用过R8,但是自从新的更新之后,我就无法生成一个工作的构建了。
我也尝试了多个组合的构建,但继续得到相同的问题,在不同程度上,什么是和不保留,所有的构建导致应用程序崩溃。
对于Proguard配置的任何帮助或构建配置中的建议,我们都会非常感激,因为这似乎是一个流行的话题,没有明确的解决方案。我试图不导出该项目并在Android中构建,因为这将是我们当前构建过程中的一个重大突破。
如果我能提供更多的信息,请告诉我。
谢谢大家。
发布于 2022-11-28 08:17:35
更新:上面的问题与保护设置无关。
从google.play复制Proguard设置。由于在gradle构建过程中没有正确地处理文件,所以插入到proguard-user.txt文件中的插件没有修复这个问题。
R8小型化没有启用,而且应该启用。根本的问题是google.play插件中类依赖项中的冲突。具体而言;
Assets/GooglePlayPlugins/com.google.play.assetdelivery 2.0.0资产/GooglePlayPlugins/com.google.play.core 1.10.3
这是一个有文件记载的问题??google;https://github.com/google/play-unity-plugins/blob/master/README.md#play-core-conflicts的统一插件。
但是,由于我不熟悉gradle和使用本地maven存储库,而且EDM4U构建修补程序也存在困难,因此很难实现链接中的修复。
我已经在这个问题上开始了一条新的线索;
Unity google.play.core dependency conflict with EDM4U maven local repository build error
https://stackoverflow.com/questions/74563207
复制