我的iOS應用程序需要憑據才能連接到多個API。由於該項目是開源的,我不想檢查到源代碼庫(git)中的憑證。如何在iOS上的源代碼管理中保留憑據
最後,我希望能夠做這樣的事情在我的應用程序代碼:
googleMapsApiKey = [AppCredentials googleMapsApiKey];
凡AppCredentials
與不在源代碼控制配置文件進行初始化。
過去,我一直在使用Python或Ruby等動態語言,並且到達solutions like this one以保證憑據不受源代碼管理。方法是這樣的:
- 有一個公共的API,它在運行時分析一個包含所有憑證的文件。
- 包含所有密碼的配置文件是帶外傳輸的(例如,通過電子郵件加密)。
- 分發爲例證書文件作爲模板用於其他開發
不過,我不知道如何應用在iOS這種方法。我不能在源根目錄中放置'passwords.json'文件,並在應用程序初始化時解析它。我不能把東西放在應用程序包中,因爲該包也被檢入到版本控制中。
注意這不會從編譯應用程序提取憑證阻止惡意的人。我目前不打算解決這個問題。有了這個問題,我只對保持憑證不在源代碼中感興趣。
你爲什麼不能做那些事?告訴SVC工具忽略該文件,因此它不包含在提交中。 – Wain
@Wain - 我不能忽略應用程序包,因爲該包用於其他事情(例如必須檢入版本控制的本地化文件)。也許我只需要一個單獨的「Credentials.bundle」,這個「Credentials.bundle」可以被源代碼控制忽略,但是當我們提交給應用程序商店時,它會被包含在應用程序中。 – mkirk
我以爲我們在討論一個單獨的配置文件,就像一個plist – Wain