如何在GitHub for iOS(SWIFT)项目中隐藏API密钥?

时间:2015-06-12 12:36:32

标签: ios swift api parsing apple-watch

您好我试图在GitHub中发布iOS(SWIFT)个人项目,但我害怕与所有人共享我的私有API密钥和秘密。

我正在使用解析,所以我在AppDelegate中有这样的东西:

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

我想隐藏" mySecretApplicationId"和#34; mySecretClientKey",在我的项目中有私有地方或目录,我可以把这些变量放在哪里?

谢谢!

2 个答案:

答案 0 :(得分:30)

您可以使用.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)
    }

答案 1 :(得分:2)

将它们放入您添加到.gitignore文件的配置文件中。检入每个开发人员可以用来创建自己的配置的示例配置文件。