Android studio3.x 多渠道打包apk
16lz
2021-01-23
1、修改AndroidManifest.xml
application 节点中添加渠道配置。
2、修改module下build.gradle
gradle 添加 flavorDimensions 属性,用来控制多个版本的代码和资源,缺失会报错。
android { ... defaultConfig { ... flavorDimensions "versionCode" //版本规格,写死 } ... productFlavors { yingyongbao {} xiaomi {} } productFlavors.all { flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] } ...}
3、自定义打包APK名称
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' // 自定义打包输出配置 applicationVariants.all { variant -> variant.outputs.all { output -> outputFileName = "gank_${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk" } } } }
4、配置签名
android { ... //签名 signingConfigs { release { storeFile file('E:\\testkey.jks') //签名文件 storePassword "test" keyAlias "testkey" keyPassword "test" //签名密码 } debug { storeFile file('E:\\testkey.jks') storePassword 'test' keyAlias = 'testkey' keyPassword 'test' } } ...}
5、获取渠道号信息
//获取渠道号 private static String getChannel(Context context) { try { PackageManager pm = context.getPackageManager(); ApplicationInfo appInfo = pm.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA); return appInfo.metaData.getString("UMENG_CHANNEL"); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return ""; }
更多相关文章
- Android,一个思路实现APP版本更新
- Android如何获得系统版本
- flutter-使用第三方库,编译和运行版本不一致问题 2
- Gradle多渠道打包
- Android获取基带版本
- 修改系统Android版本,版本号
- Android SDK版本更新
- react-native 升级版本号
- android版本与linux内核版本对应关系