apache commons ftp 不适用于 release build apk
apache commons ftp doesn't work on release build apk
我可以在使用调试版本时将文件上传到 FTP 服务器,但在发布版本中失败:
- 无论是否启用 minify 都会失败
- 即使我删除混淆器设置,它也会失败
我能够毫无错误地生成发布版本 apk。应用程序中的上传到 ftp 功能将无法使用。
build.gradle
implementation 'commons-net:commons-net:3.6'
....
minifyEnabled false
shrinkResources false
// proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
debuggable true
signingConfig signingConfigs.release
proguard-rules.pro
-keepclasseswithmembernames class * {
native <methods>;
}
-keep class com.integratedbiometrics.** { *;}
-keep class org.libusb.** { *;}
-keep class com.futronictech.** { *;}
-keep class com.smufsbio.btsdk.** { *;}
-keep class org.apache.http.** { *; }
-keep class org.apache.commons.codec.** { *; }
-keep class org.apache.commons.logging.** { *; }
-keep class android.net.compatibility.** { *; }
-keep class android.net.http.** { *; }
-dontwarn org.apache.http.**
-dontwarn android.webkit.**
我错过了什么?
我已经开始工作了。我发现它根本不是收缩和混淆,因为在发布和调试版本中将 minifyEnabled
和 shrinkResources
设置为 true
仍然给我一个发布版本的问题,而调试版本效果不错。
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
当时唯一的区别是签名配置,当我设置
signingConfig signingConfigs.release
在调试版本中,问题出现在调试版本中。
显然,我用来签署 apk 的安全证书有问题。创建新证书为我解决了这个问题。这是第一个版本,所以这样做没有问题。
我可以在使用调试版本时将文件上传到 FTP 服务器,但在发布版本中失败:
- 无论是否启用 minify 都会失败
- 即使我删除混淆器设置,它也会失败
我能够毫无错误地生成发布版本 apk。应用程序中的上传到 ftp 功能将无法使用。
build.gradle
implementation 'commons-net:commons-net:3.6'
....
minifyEnabled false
shrinkResources false
// proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
debuggable true
signingConfig signingConfigs.release
proguard-rules.pro
-keepclasseswithmembernames class * {
native <methods>;
}
-keep class com.integratedbiometrics.** { *;}
-keep class org.libusb.** { *;}
-keep class com.futronictech.** { *;}
-keep class com.smufsbio.btsdk.** { *;}
-keep class org.apache.http.** { *; }
-keep class org.apache.commons.codec.** { *; }
-keep class org.apache.commons.logging.** { *; }
-keep class android.net.compatibility.** { *; }
-keep class android.net.http.** { *; }
-dontwarn org.apache.http.**
-dontwarn android.webkit.**
我错过了什么?
我已经开始工作了。我发现它根本不是收缩和混淆,因为在发布和调试版本中将 minifyEnabled
和 shrinkResources
设置为 true
仍然给我一个发布版本的问题,而调试版本效果不错。
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
当时唯一的区别是签名配置,当我设置
signingConfig signingConfigs.release
在调试版本中,问题出现在调试版本中。
显然,我用来签署 apk 的安全证书有问题。创建新证书为我解决了这个问题。这是第一个版本,所以这样做没有问题。