2017-03-13 10 views
0

我继承了一个Android项目,其中以前的维护人员在应用程序的build.gradle中以纯文本形式存储了发行版和调试签名密钥库以及密钥别名/密码。然后将它签入GitHub Git存储库。回购仅适用于我,所以目前这不是什么大问题,但未来有更多人可以访问我想阻止发布签名的回购。如何补救在明文中检入Git存储库的Android版本签名配置密码?

signingConfigs { 
     debug { 
      storeFile file('debug.keystore') 
      storePassword ‘<password in plaintext>’ 
      keyAlias ‘<alias in plaintex>’ 
      keyPassword ‘<password in plaintext>’ 
     } 

     release { 
      storeFile file(“<path to .jks file>“) 
      storePassword ‘<password in plaintext>’ 
      keyAlias ‘<alias in plaintex>’ 
      keyPassword ‘<password in plaintext>’ 
     } 
    } 

我知道这是一个不好的做法,我想删除明文密码和别名。起初,我考虑简单地删除明文,并从没有签入回购的外部文件中读取密码(https://developer.android.com/studio/publish/app-signing.html#secure-shared-keystore)。然而,我想到密码仍然会在Git的历史记录中,并且很容易被发现。然后我做了一些调查,发现您可以更改密钥库上的密码(Keystore change passwords)。太好了,但是如果我这样做,是否有人能够在从Git仓库更改密码之前下载旧版本的密钥仓库,并使用旧密码生成有效签名?

回答

0

找到提交已添加密码的位置。然后git rebase -i commitHash。在此提交上使用编辑,删除密码,然后继续重新绑定,如果密码之后被更改,则应该发生冲突,以便您可以删除它们。然后使用外部文件进行新的提交。你应该在你拥有或更好的所有分支上做到这一点,但只保留主人并在那里做。

Git rewriting history

相关问题