Android Studio上鼠标修改构建类型
 
Release版本
 
- 激活路径:More tool windows->Build Variants->Active Build Variant->release
- APK路径:- Project\app\build\intermediates\apk\app-release.apk
  
  
Debug版本
 
- 激活路径:More tool windows->Build Variants->Active Build Variant->debug
- APK路径:- Project\app\build\intermediates\apk\app-debug.apk
  
  
build.gradle(:app)文件中代码修改构建类型
 
Release版本
 
 
keytool -genkey -v -keystore yang_release_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_release_key_name
 
 
signingConfigs {
    release {
        keyAlias 'yang_release_key_name' 
        keyPassword 'yang.guo' 
        storeFile file('../build_store/yang_release_store.jks') 
        storePassword 'yang.guo' 
    }
}
buildTypes {
    release {
        minifyEnabled true 
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 
        signingConfig signingConfigs.release 
    }
}
 
 
./gradlew assembleRelease
 
Debug版本
 
 
keytool -genkey -v -keystore yang_debug_store.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yang_debug_key_name 
 
 
signingConfigs {
    debug{
        keyAlias 'yang_debug_key_name' 
        keyPassword 'yang.guo' 
        storeFile file('../build_store/yang_debug_store.jks') 
        storePassword 'yang.guo' 
    }
}
buildTypes {
    debug {
        applicationIdSuffix ".debug" 
        debuggable true 
        signingConfig signingConfigs.debug 
    }
}
 
 
./gradlew assembleDebug
 
如何区分当前APK文件是Release包还是Debug包
 
检查APK中的BuildConfig文件
 
- 解压APK文件:- 查找BuildConfig类:在解压后的目录中,找到classes.dex文件,将其反编译为Java代码(可以使用dex2jar和JD-GUI工具)
- 查看BuildConfig类:在反编译后的Java代码中,找到BuildConfig类,查看其中的DEBUG字段
- 如果DEBUG字段为true,则表示是Debug包
- 如果DEBUG字段为false,则表示是Release包
 
检查APK的调试字段
 
- 解压APK文件:- 查找调试属性:在解压后的目录中,查找AndroidManifest.xml文件,查看其中的android:debuggable属性
- 如果android:debuggable属性为true,则表示是Debug包
- 如果android:debuggable属性为false,则表示是Release包