2

可能重复:
如何开源使用 API 密钥的应用程序

我有一个开源 Android 应用程序,我计划将 Flurry 跟踪添加到其中。Flurry 为您的应用程序的跟踪创建一个唯一的 API 密钥。

我是否需要尝试在我的源代码中隐藏这个 API 密钥(即不包括它,我会在每次构建发布时添加它)或者只是不担心它?

4

3 回答 3

5

这种性质的应用程序应该有一个独立于存储库之外的配置文件。与其提交文件本身,不如创建提交到存储库的文件的“样本”版本,其中包含所有必要的设置,但只有虚拟数据。然后在您的应用程序中,动态加载“真实”配置文件。

当另一个开发人员检查代码时,他们必须进行一些简单的初始设置。其中一项包括制作示例配置文件的副本并将其重命名为正确、正确的配置文件名,然后使用他们自己的密钥、密码等私有设置对其进行更新。

于 2010-06-03T20:02:56.600 回答
2

其他人会下载这个开源项目并构建他们自己的版本吗?如果是这样,我会保留 API 密钥并放入通过代码加载的配置文件(带有名称/值)。或者,这将是开源的,只是为了让很多人都可以工作吗?在这种情况下,将其留在其中可能会更容易。

就个人而言,无论如何我都会使用配置文件并将其排除在外。如果只是因为其他人可以获得您的 API 密钥,请将其添加到他们的应用程序中并弄乱您的数据。那,每次您在测试环境中构建和运行时,都会影响您的统计数据。

于 2010-06-03T16:34:22.420 回答
2

我使用 Google Code 作为 svn 存储库,对于我的任何 api 密钥,我在 strings.xml 中放置了一个占位符,如果我签入任何内容,请确保将它们清空。

于 2010-06-03T18:02:39.510 回答