热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android一键打包。一键打出不同包名、应用名、版本名、签名、应用图标、版本号的安装包

不同图标和不同应用名适用于多平台上传问题不同意包名适用于马甲包不同版本名适用于多平台版本不同问题不同应用图标、不同包名、不同版本名、不同签名。

不同图标和不同应用名 适用于多平台上传问题
不同意包名 适用于马甲包
不同版本名 适用于多平台版本不同问题
不同应用图标、不同包名、不同版本名、不同签名。适用于一套代码打出多个应用
本文主要使用gradle执行

打出不同应用名,不同应用图标的包
flavorDimensions “nade”
productFlavors{

app1{
resValue “string”, “app_name”, “app1”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “1”
manifestPlaceholders = [ENVIRONMENT: “app1”,
app_icon : “@mipmap/freechat_logo”]
}
app2{
resValue “string”, “app_name”, “app2”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “2”
manifestPlaceholders = [ENVIRONMENT: “app2”,
app_icon : “@mipmap/ic_launcher”]
}
}

打出不同应用名,不同应用图标,不同包名的包
flavorDimensions “app”
productFlavors {
app1 {
manifestPlaceholders = [str: “releaseStr”, package_name: “com.nade.androidsqdemo1”]
applicationId “com.nade.androidsqdemo1”
resValue “string”, “app_name”, “app1”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “1”
manifestPlaceholders = [ENVIRONMENT: “app1”,
app_icon : “@mipmap/freechat_logo”]

    }
    app2 {
        manifestPlaceholders = [str: "releaseStr", package_name: "com.nade.androidsqdemo2"]
        applicationId "com.nade.androidsqdemo2"
        resValue "string", "app_name", "app2"
        resValue "bool", "isrRank", 'true'
        buildConfigField "int", "TYPE", "2"
        manifestPlaceholders = [ENVIRONMENT: "app2",
                                app_icon   : "@mipmap/ic_launcher"]
       
    }
}

打出不同应用名,不同应用图标,不同包名,不同版本,不同版本号的包
flavorDimensions “app”
productFlavors {
app1 {
manifestPlaceholders = [str: “releaseStr”, package_name: “com.nade.androidsqdemo1”]
applicationId “com.nade.androidsqdemo1”
versionCode 1
versionName “1.0”
resValue “string”, “app_name”, “app1”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “1”
manifestPlaceholders = [ENVIRONMENT: “app1”,
app_icon : “@mipmap/freechat_logo”]

    }
    app2 {
        manifestPlaceholders = [str: "releaseStr", package_name: "com.nade.androidsqdemo2"]
        applicationId "com.nade.androidsqdemo2"
        versionCode 2
        versionName "2.0"
        resValue "string", "app_name", "app2"
        resValue "bool", "isrRank", 'true'
        buildConfigField "int", "TYPE", "2"
        manifestPlaceholders = [ENVIRONMENT: "app2",
                                app_icon   : "@mipmap/ic_launcher"]
     
    }
}

打出不同应用名,不同应用图标,不同包名,不同版本,不同版本号,不同签名的包

signingConfigs {
def key1alias = ‘db’
def key1Password = ‘123456’
def key1FilePath = ‘G:/SpaceFile/AndroidTestDemo/db.jks’
def store1PassWord = ‘123456’

    def key1alias1 = 'db1'
    def key1Password1 = '123456'
    def key1FilePath1 = 'G:/SpaceFile/AndroidTestDemo/db1.jks'
    def store1PassWord1 = '123456'

    release1 {
        keyAlias key1alias
        keyPassword key1Password
        storeFile file(key1FilePath)
        storePassword(store1PassWord)
    }
    release2{
        keyAlias key1alias1
        keyPassword key1Password1
        storeFile file(key1FilePath1)
        storePassword(store1PassWord1)
    }
}

flavorDimensions “app”
productFlavors {
app1 {
manifestPlaceholders = [str: “releaseStr”, package_name: “com.nade.androidsqdemo1”]
applicationId “com.nade.androidsqdemo1”
versionCode 1
versionName “1.0”
resValue “string”, “app_name”, “app1”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “1”
manifestPlaceholders = [ENVIRONMENT: “app1”,
app_icon : “@mipmap/freechat_logo”]
signingConfig signingConfigs.release1
}
app2 {
manifestPlaceholders = [str: “releaseStr”, package_name: “com.nade.androidsqdemo2”]
applicationId “com.nade.androidsqdemo2”
versionCode 2
versionName “2.0”
resValue “string”, “app_name”, “app2”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “2”
manifestPlaceholders = [ENVIRONMENT: “app2”,
app_icon : “@mipmap/ic_launcher”]
signingConfig signingConfigs.release2
}
}

打出不同应用名,不同应用图标,不同版本,不同版本号,不同签名的包

signingConfigs {
def key1alias = ‘db’
def key1Password = ‘123456’
def key1FilePath = ‘G:/SpaceFile/AndroidTestDemo/db.jks’
def store1PassWord = ‘123456’

    def key1alias1 = 'db1'
    def key1Password1 = '123456'
    def key1FilePath1 = 'G:/SpaceFile/AndroidTestDemo/db1.jks'
    def store1PassWord1 = '123456'

    release1 {
        keyAlias key1alias
        keyPassword key1Password
        storeFile file(key1FilePath)
        storePassword(store1PassWord)
    }
    release2{
        keyAlias key1alias1
        keyPassword key1Password1
        storeFile file(key1FilePath1)
        storePassword(store1PassWord1)
    }
}

flavorDimensions “app”
productFlavors {
app1 {
manifestPlaceholders = [str: “releaseStr”, package_name: “com.nade.androidsqdemo1”]
applicationId “com.nade.androidsqdemo1”
versionCode 1
versionName “1.0”
resValue “string”, “app_name”, “app1”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “1”
manifestPlaceholders = [ENVIRONMENT: “app1”,
app_icon : “@mipmap/freechat_logo”]
signingConfig signingConfigs.release1
}
app2 {
manifestPlaceholders = [str: “releaseStr”, package_name: “com.nade.androidsqdemo2”]
applicationId “com.nade.androidsqdemo1”
versionCode 2
versionName “2.0”
resValue “string”, “app_name”, “app2”
resValue “bool”, “isrRank”, ‘true’
buildConfigField “int”, “TYPE”, “2”
manifestPlaceholders = [ENVIRONMENT: “app2”,
app_icon : “@mipmap/ic_launcher”]
signingConfig signingConfigs.release2
}
}

清单文件

android:allowBackup=”true”
android:icon=”${app_icon}”
android:label=”@string/app_name”
android:supportsRtl=”true”
android:theme=”@style/AppTheme”>

可打包测试。欢迎评论/讨论私信


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
author-avatar
沉白
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有