我有一个开源Android应用程序,我计划添加Flurry跟踪。 Flurry为您的应用程序跟踪创建了一个独特的API密钥。
我是否需要尝试在源代码中隐藏此API密钥(即不包含它,我会在每次构建发布时添加它)或者只是不担心它?
答案 0 :(得分:5)
这种性质的应用程序应该有一个独立于存储库之外的配置文件。创建文件的“样本”版本,而不是提交文件本身,该文件将提交到存储库,其中包含所有必需的设置,但只有虚拟数据。然后在您的应用中,动态加载“真实”配置文件。
当另一个开发人员检查代码时,他们将不得不做一些简单的初始设置。其中一个项目包括制作样本配置文件的副本,并将其重命名为正确的配置文件名,然后使用自己的密钥,密码等私有设置进行更新。
答案 1 :(得分:2)
其他人是否会下载此开源项目并构建自己的版本?如果是这样,我会保留API密钥并放入通过代码加载的配置文件(带名称/值)。或者,这是否是开源的,只是为了让很多人能够参与其中?在这种情况下,将其留在原点可能更容易。
就个人而言,无论如何我都会使用配置文件并将其删除。如果只是因为其他人可以获得您的API密钥,请将其添加到他们的应用程序并弄乱您的数据。那,以及每次在测试环境中构建和运行时,都会影响您的统计数据。
答案 2 :(得分:2)
我使用Google Code作为svn存储库,对于我的任何api密钥,我将一个占位符放在strings.xml中,如果我检查了任何内容,请务必将其删除。