ios - iOS 应用程序中使用的 API key 和 secret - 将它们存储在哪里?

标签 ios git api-key

我正在为 iOS 开发,我需要使用 API key 和 secret 向某些 API 发出请求。但是,我不希望它暴露在我的源代码中,并在我推送到我的存储库时泄露 secret 。

这种情况下的最佳做法是什么?将它写在一个单独的文件中,我将把它包含在 .gitignore 中?

谢谢

最佳答案

Write it in a separate file which I'll include in .gitignore?

不,永远不要写它。
这意味着:

  • 你没有在你的 repo 中写那个 secret (不需要 gitignore 它,或者担心错误地添加/提交/推送它)
  • 你不会把它写在你本地驱动器的任何地方(不用担心你的电脑被盗,上面有那个“ secret ”)

在你的 repo 中存储一个脚本,该脚本能够从外部源(从 gi​​t repo 外部)寻找该 secret 并将其加载到内存中
这类似于 git credential-helper process ,并且该脚本将启动一个监听 localhost:port 的进程,以便在您需要时仅在当前 session 中为您提供“ secret ”。
一旦 session 完成,就不会留下任何痕迹。
这是管理 secret 数据的最佳实践。

如果您在 .gitattributes 文件中将其声明为内容过滤器,您可以在 git checkout 上自动触发该脚本:

content filter

关于ios - iOS 应用程序中使用的 API key 和 secret - 将它们存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16754541/

相关文章:

ios - 使用 Swift 的 Alamofire - "Could not cast value of type ' Swift._SwiftDeferredNSArray' (ox10a75ebb0) 到 'Photomania.PhotoInfo' (0x107ee7b90)。”

ios - Firebase首次打开事件不正确

ios - 如何在 Xcode 中为我的 Today Widget 设置图标?

CruiseControl.Net 中的 Git 功能分支

Java youtube API 错误 403 未经身份验证的使用超出每日限制

ios - 单例 View Controller

git: --prune-empty 使用 bfg 重复提交后

macos - 如何使用 Github 从不同的计算机访问相同的项目文件?

javascript - Google 地理编码仅在没有 API key 的情况下运行

java - 在 google play store 中上传已签名的 apk 时使用其他帐户