将 AWS 密钥排除在 github 之外
Keeping AWS keys out of github
我知道我应该将包含秘密 AWS 密钥的文件放在 .gitignore 中,但是 github 上的用户被迫重建我包含 AWS 密钥的常量代码(一个 swift 结构与静态让我们)。有什么东西可以让我在推送时替换不同的文件吗?有更好的方法吗?
澄清:我不关心与其他开发人员共享 AWS 密钥。在我的情况下,每个开发人员都是独立的,可以使用他们自己的 AWS 密钥。
我想要完成的是拥有一个本地单一开发环境,我可以在其中开发和测试 Xcode 上的 swift 应用程序(无需每次提交时更改密钥),以及但仍然能够推送到 public GITHUB.
当有人克隆存储库时,我希望他们能够在仅更新虚拟键值后进行构建,但我不希望我的密钥以任何方式在 GITHUB
大多数面临该问题的项目只是用虚拟值代替实际键。
Git 使保持此工作特别容易 - 只要您不更改虚拟行,每个 git pull / (git fetch + git merge) 将保留用户的行,如果他提交了一次文件。
您可以将您的密钥添加到一个 plist 中,该列表将添加到您的 .gitignore 文件中。
这样你就不必在每次提交时都重新设置那些 swift 变量,它只是从本地 plist 中提取。我的大多数项目也使用这种 plist 驱动的方法来针对不同的方案。我将为我的预生产 api 密钥创建一个 'debug' 字典,并为我的生产 api 密钥创建一个 'release' 字典。这有一个额外的好处,如果你真的想的话,你可以从临时工那里保留生产 api 密钥。适合我,而且非常整洁。
是的,您仍然需要以某种方式让其他开发人员获得该 plist 文件;但是有很多方法可以以加密的方式做到这一点...它只是一个文本文件。
我知道我应该将包含秘密 AWS 密钥的文件放在 .gitignore 中,但是 github 上的用户被迫重建我包含 AWS 密钥的常量代码(一个 swift 结构与静态让我们)。有什么东西可以让我在推送时替换不同的文件吗?有更好的方法吗?
澄清:我不关心与其他开发人员共享 AWS 密钥。在我的情况下,每个开发人员都是独立的,可以使用他们自己的 AWS 密钥。
我想要完成的是拥有一个本地单一开发环境,我可以在其中开发和测试 Xcode 上的 swift 应用程序(无需每次提交时更改密钥),以及但仍然能够推送到 public GITHUB.
当有人克隆存储库时,我希望他们能够在仅更新虚拟键值后进行构建,但我不希望我的密钥以任何方式在 GITHUB
大多数面临该问题的项目只是用虚拟值代替实际键。
Git 使保持此工作特别容易 - 只要您不更改虚拟行,每个 git pull / (git fetch + git merge) 将保留用户的行,如果他提交了一次文件。
您可以将您的密钥添加到一个 plist 中,该列表将添加到您的 .gitignore 文件中。
这样你就不必在每次提交时都重新设置那些 swift 变量,它只是从本地 plist 中提取。我的大多数项目也使用这种 plist 驱动的方法来针对不同的方案。我将为我的预生产 api 密钥创建一个 'debug' 字典,并为我的生产 api 密钥创建一个 'release' 字典。这有一个额外的好处,如果你真的想的话,你可以从临时工那里保留生产 api 密钥。适合我,而且非常整洁。
是的,您仍然需要以某种方式让其他开发人员获得该 plist 文件;但是有很多方法可以以加密的方式做到这一点...它只是一个文本文件。