秘钥丢失或泄漏:

1.无法发布已有应用的更新,签名文件不同导致无法覆盖安装

2,被人重新打包,添加私活,偷偷获取用户数据等

从编译文件中移除签名信息

android 保障密钥的安全 keystore.properties - Welcome My Blog! - OSCHINA - 中文开源技术交流社区

关于签名文件的知识总结 - zhangmiao14 - 博客园

在您创建签名配置时,Android Studio 会以纯文本形式将您的签名信息添加到模块的 build.gradle 文件中。如果您通过团队协作开发项目或者要将您的代码开源,那么您应该将此敏感信息从编译文件中移出,以免被其他人轻易获取。为此,您应该创建一个单独的属性文件来存储安全信息并在您的编译文件中引用此文件,具体步骤如下所示:

创建一个签名配置,并将其分配到一个或多个编译类型。这些说明假设您已经按照上面配置编译流程以自动为应用签名部分所述,为发布版本类型配置了一个签名配置。 在项目的根目录下创建一个名为 keystore.properties 的文件。此文件应该包含您的签名信息,具体代码如下所示:

storePassword=myStorePasswordkeyPassword=mykeyPasswordkeyAlias=myKeyAliasstoreFile=myStoreFileLocationdemo:storePassword=sdfsdfkeyPassword=fsdfsdfkeyAlias=fsdfdsfstoreFile=../../mykey.jksdebugstorePassword=dfsfdebugkeyPassword=sdfdfdebugkeyAlias=fsdfdebugstoreFile=dfsf

在模块的 build.gradle 文件中,在 android {} 块的前面添加用于加载 keystore.properties 文件的代码。

...

    // Create a variable called keystorePropertiesFile, and initialize it to your// keystore.properties file, in the rootProject folder.def keystorePropertiesFile = rootProject.file("keystore.properties")// Initialize a new Properties() object called keystoreProperties.def keystoreProperties = new Properties()// Load your keystore.properties file into the keystoreProperties object.keystoreProperties.load(new FileInputStream(keystorePropertiesFile))android {...}

注意:您可以选择将 keystore.properties 文件存储在其他位置(例如,存储在模块文件夹中而不是项目的根文件夹中,或者如果您使用持续集成工具,也可以存储在编译服务器上)。在这种情况下,您应该修改上面的代码,以使用实际的 keystore.properties 文件的位置正确初始化 keystorePropertiesFile。

您可以使用语法 keystoreProperties['propertyName'] 引用存储在 keystoreProperties 中的属性。修改模块的 build.gradle 文件的 signingConfigs 块,以便使用此语法引用存储在 keystoreProperties 中的签名信息。

 android {signingConfigs {config {keyAlias keystoreProperties['keyAlias']keyPassword keystoreProperties['keyPassword']storeFile file(keystoreProperties['storeFile'])storePassword keystoreProperties['storePassword']}}...}demo:signingConfigs {release {keyAlias keystoreProperties['keyAlias']keyPassword keystoreProperties['keyPassword']storeFile file(keystoreProperties['storeFile'])storePassword keystoreProperties['storePassword']}debug {keyAlias keystoreProperties['debugkeyAlias']keyPassword keystoreProperties['debugkeyPassword']storeFile file(keystoreProperties['debugstoreFile'])storePassword keystoreProperties['debugstorePassword']}}release {buildConfigField "boolean", "LOG_DEBUG", "false"zipAlignEnabled trueshrinkResources trueminifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'signingConfig signingConfigs.release}

打开 Build Variants 工具窗口,并确保已选择发布版本类型。 选择 Build > Build Bundle(s) / APK(s) 下的选项,编译您的发布版本的 APK 或 app bundle。您应该会在模块的 build/outputs/ 目录中看到相应编译输出。

由于您的编译文件不再包含敏感信息,您现在可以将其包含在源代码控制系统中或者上传到共享的代码库。请务必保障 keystore.properties 文件的安全。您可能需要将其从您的源代码控制系统中移除

keystore.properties 配置相关推荐

  1. Source Insight之Relation Window Properties配置和一些快捷键

    1 Source Insight之Relation Window Properties配置 我们先点击source Insight的这个地方 然后鼠标右键,点击Relation Window Prop ...

  2. Log4j介绍,log4j.properties配置详解

    http://www.cnblogs.com/simle/archive/2011/09/29/2195341.html本文主要解释log4j的配置文件各个配置项的含义,内容是从网上转载的 1.Log ...

  3. SpringCloud Alibaba - Nacos 作为配置中心 读取Properties配置信息

    SpringCloud Alibaba是阿里巴巴致力于对微服务的管理.配置.注册等一整套的解决方案. 简介 Nacos 提供用于存储配置和其他元数据的 K-V 存储,为分布式系统中的外部化配置提供服务 ...

  4. Spring Boot中的application.properties配置简介(二)

    Spring Boot中的application.properties配置简介(二)   根据上文的介绍,我们已经对Spring Boot中的application.properties配置有了一定的 ...

  5. Spring Boot(四)-- 中的application.properties配置简介 2

      根据上文的介绍,我们已经对Spring Boot中的application.properties配置有了一定的了解,下面我们对此进行最后的介绍.   紧接上文的讲解,如下: 普通属性的注入   由 ...

  6. c3p0.properties配置引起的com.mchange.v2.resourcepool.TimeoutException

    c3p0.properties配置引起的com.mchange.v2.resourcepool.TimeoutException 最近由于客户业务量的增长,公司决定使用分布式处理的方式来解决客户反应的 ...

  7. 跟益达学Solr5之core.properties配置详解

    学习Solr之前,我想对于初学Solr的小伙伴们来说, Solr的core概念是最令人头疼的,到底该怎么理解Solr中的core呢?以下是我从Solr的官方文档中摘下来的一段文字说明: In Solr ...

  8. java常量配置_java项目动态配置常量和peiconfig.properties配置使用详解

    java项目动态配置常量和peiconfig.properties配置使用详解 点击:2 Java工程中配置信息一般都写在 properties文件中,下面这篇文章是对java基础配置的一点学习心得整 ...

  9. java log4配置例子,log4j.properties配置属性详解与配置示例

    log4j.properties配置属性详解与配置示例 发布时间:2018-03-27作者:laosun阅读(1535) log4j.properties配置属性详解与配置示例,拿走直接用!详细解答了 ...

最新文章

  1. Ubuntu下安装Python开发的Facebook Faiss相似性搜索工具
  2. Win11桌面没有图标怎么解决 Win11桌面没有图标解决教程
  3. oracle xp 安装包资源
  4. CH579 以太网转串口 串口服务器代码
  5. c4d打开没反应_野分享:一大波C4D插件的测试以及分享
  6. Netty自定义数据包
  7. C语言数据结构理解语句L = (LNode * )malloc(sizeof(LNode));
  8. 遍历输出数组-----淫巧
  9. win10怎么设置无线网连接到服务器,win10wifi自动连接在哪里设置_win10设置自动连接wifi的方法...
  10. 程序员的自我修炼——新手如何学好编程
  11. 孙思邈的养生哲学和孔子的阴阳和谐之道
  12. AI 入行那些事儿(9)人工智能对人类社会的影响
  13. BZOJ3387栅栏(另一种解法:spfa)
  14. 展示 用户画像_案例分析:如何建立一个产品的用户画像?
  15. word打开doc文件提示运行时错误‘4605‘
  16. 社会综合治理智慧综治管理系统平台Java商业源码
  17. 机器人测钢卷直径_机器人热轧钢卷喷号漆
  18. 基于winform的工资单群发工具
  19. B站韩顺平java学习笔记(六)--面向对象编程章节
  20. 【信息系统项目管理师】第十四章 文档与配置管理思维导图

热门文章

  1. 漫画 | 一个养活了4代程序员的男人
  2. 流量卡之家:5G及其在家庭中的社会影响 你准备好了吗?
  3. thymelaf使用
  4. 11-【数据库】定义表结构的时间字段的两种方式
  5. HAVE IN .....
  6. python根据F1 score,prec计算rec(作个人使用)
  7. 数据结构总结---------非线性表(多叉平衡树)
  8. Unity编辑器扩展——标签属性Attribute
  9. 霍尔传感器模块电路图
  10. Java对接银联支付