前書き
無知な私はAPIキーをGitHubに公開してしまいました。大きな失敗。
インドの心優しきiOSDevelopperさんが非表示にした方が良いと教えてくれました。ありがとう
そこでAPIキーを非表示にする方法を調べてまとめてみました。
なぜAPIキーを非表示にするの?
セキュリティで保護されていないAPIキーを一般公開すると、その情報が意図しない形で使用され、アカウントで不測の料金が発生する場合があります。
個人に割り振られているAPIキーを公開すると他の方に使用される恐れがあるんですね
GitHubにPushする前にAPIキーを非表示にする方法
OpenWeatherAPIを使用する際の例として、適当に決めたAPIキーを12345678910とすると...
下記のままGitHubで公開すると、個人のAPIキーが他の方も使用できてしまいます。
そこで下記のステップで、非表示にします。
1.下記の EditScheme...をクリックする!
2. Environment VariablesのNameに追加する。
今回はNameをAPI_KEYと設定しました! ValueにAPIキーを12345678910をコピペする!
3.下記のように先ほど実際のAPIキーを入れてしまっていた箇所を下記のように書き換えます!
let weatherURL = "https://api.openweathermap.org/data/2.5/weather?&lang=ja&appid=\(ProcessInfo.processInfo.environment["API_KEY"] ?? "")&units=metric"
以上でAPIキーを隠すことに成功しました!
環境変数?いつ使うの?
ほとんどの Swift アプリは環境変数を必要としませんが、
環境変数は一般的にウェブサイトの REST API を呼び出すアプリで使用されます。
環境変数に格納することは、コード内の文字列として格納するよりも安全です。
GitHubも環境変数を使用し、保存することを推奨しています!
注意点とメリット
🟥注意点:GitHub上でPublicで公開した場合、クローンでも同じAPIKeyが使用できてしまう!Edit SchemeからAPIKeyが見えてしまうという問題があります
そのため、PublicでGitHubに公開するには、下記の記事のように.gitignoreを使用してAPIキーを非表示にする方法の方が有効です!
環境変数を使用するメリット:環境変数でAPIキーを非表示にする方法は、チームのメンバーのみでGitHub上で開発する際や、開発用APIのURLと本番用APIのURLを分けて使用したい際に有効です!
参考文献