我的Android应用使用Google Payments,我将API密钥存储在未添加到VCS(使用的.gitignore文件)的value xml中。我在代码中将值引用为R.string.api_licence
。
当我为CI设置travis时,它抱怨找不到R.string.api_licence
。解决方法是,我签入了一个空值的虚拟文本文件,并从travis构建脚本将扩展名重命名为xml。
目前可以使用,
1-这似乎不是完美的解决方案
2-Android Studio抱怨虚拟txt文件名应为xml扩展名,并且我必须在本地删除它才能正常工作,这导致我有时不小心提交并破坏了构建版本
Travis脚本文件:https://github.com/midhunhk/message-counter/blob/master/.travis.yml
注意:我是一名自学成才的Android开发人员。我不需要真正的API密钥用于CI流程。我对此主题进行了相当多的研究,但无法得到我问题的具体答案。
答案 0 :(得分:0)
我认为可以使用以下方法来解决此问题。更改API实现后,我再也不需要进行测试,并且可能不需要将API密钥存储在源代码中。
https://docs.travis-ci.com/user/environment-variables/#Defining-Variables-in-Repository-Settings