2016-08-23 36 views
0

我知道我應該將包含密鑰AWS密鑰的文件放在.gitignore中,但是那麼github上的用戶將被迫重新構建包含AWS密鑰的常量代碼(一個使用靜態的swift結構)。當我推送時,有什麼能讓我替換另一個文件嗎?有一個更好的方法嗎?將AWS密鑰保留在github上

澄清:我不關心與其他開發人員共享AWS密鑰。在我的情況下,每個開發者都是獨立的,可以使用他們自己的AWS密鑰

我想要完成的是有一個本地單一開發環境,我可以在Xcode上開發和測試一個快速應用程序(每次提交時都不更改密鑰),但仍然可以推送到公共GITHUB 。

當有人克隆庫,我希望他們能夠只更新虛擬鍵值後建立的,但我永遠不希望我的密鑰可用以任何方式在GitHub上

+0

環境變量並在需要時加載它們?所有AWS cli都支持開箱即用。 –

+0

我見過有人在文件中使用已知的假人,並且有一個git gate check/CI測試,如果它不是已知的虛擬值,就會失敗。如果您使用的代碼審查通常應該抓住它,如果您執行該策略 –

回答

3

您可以將您的密鑰添加到添加到.gitignore文件中的plist。

這樣,您不必每次都要重新設置這些swift變量,只需從本地plist中取出即可。我的大部分項目都使用這種以plist爲驅動的方法來定位不同的方案。我將爲我的預生產API key創建一個'debug'字典,併爲我的生產API key創建一個'release'字典。這還有額外的好處,如果你真的想要,你可以保留臨時工的生產API密鑰。適合我,而且非常整齊。

是的,你仍然必須得到另一個開發人員plist文件;但有很多方法可以用加密的方式來做到這一點......它只是一個文本文件。

+0

我接受了您的答案,因爲我最終使用名爲AWSKeys.xcconfig的文件並引用了plist中的文件。我把xcconfig放在.gitignore中,所以當它沒有出現時,plist中仍然有一組字段用於每個任何人都可以用自己的信息填寫的密鑰。這也允許你提到的不同版本。我一直在大量閱讀這些方法,但這些方法都不是從某人越獄iphone的安全方法中隱藏的,但至少它們並不是圍繞github漂浮的。 – Bruce0

0

大多數項目面對這個問題,只需在實際密鑰的地方替換虛擬值即可。如果他不改變虛擬行,那麼每次git pull /(git fetch + git merge)都會保留用戶的行,如果他提交了一次文件的話。