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