Как скрыть ключи API в проектах GitHub для iOS (SWIFT)?

Здравствуйте, я пытаюсь опубликовать личный проект iOS (SWIFT) в GitHub, но я боюсь делиться своими личными ключами и секретами API со всеми.

Я использую parse, поэтому у меня в AppDelegate есть что-то вроде этого:

let applicationId = "mySecretApplicationId"
let clientKey = "mySecretClientKey"
Parse.setApplicationId(applicationId!, clientKey: clientKey!)

Я хотел бы скрыть "mySecretApplicationId" и "mySecretClientKey", есть ли в моем проекте частное место или каталог, где я могу поместить эти переменные?

Спасибо!

Ответы

Ответ 1

Вы можете использовать файл .plist, в котором хранятся все важные ключи. Очень важно поместить этот файл в ваш файл .gitignore.

В вашем случае вам нужно установить файл keys.plist следующим образом: enter image description here

И используйте его внутри AppDelegate следующим образом:

    var keys: NSDictionary?

    if let path = NSBundle.mainBundle().pathForResource("Keys", ofType: "plist") {
        keys = NSDictionary(contentsOfFile: path)
    }
    if let dict = keys {
        let applicationId = dict["parseApplicationId"] as? String
        let clientKey = dict["parseClientKey"] as? String

        // Initialize Parse.
        Parse.setApplicationId(applicationId!, clientKey: clientKey!)
    }

Обновление SWIFT 3:

 if let path = Bundle.main.path(forResource: "Keys", ofType: "plist") {
        keys = NSDictionary(contentsOfFile: path)
    }

Ответ 2

Поместите их в файл конфигурации, который вы добавляете в файл .gitignore. Проверьте пример файла конфигурации, который каждый разработчик может использовать для создания собственной конфигурации.