チンチラのフンみたいなもの

毎日の学んだことを書いていきます

iOSアプリ開発でAPIキーを切り離す

やり方

 cocoapods-keyを使う。これを使えばAPIキーをソースの中ではなく、キーチェーンの中に保存できるみたい。

実際にやってみる

Usageに従ってPodfileに以下のように書く

plugin 'cocoapods-keys', {
  :project => "SalesCallsRecord",
  :keys => [
    "GMSServices",
    "GMSPlacesClient"
  ]}

そして

pod install

すると、まだ登録していないキーについて入力が求められるのでそこでAPIキーを入力。入力後インストールが完了する。
そして、APIキーを使うAppDelegateに以下のように書く

import Keys

class AppDelegate: UIResponder, UIApplicationDelegate {

let keys = SalesCallsRecordKeys()

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        
        GMSServices.provideAPIKey(keys.gMSServices)
        GMSPlacesClient.provideAPIKey(keys.gMSPlacesClient)
        return true
    }

Keysをインポートすることで先程Podfileで書いた内容にしたがって自動的にクラスとプロパティが作られるみたい。 よし、これでGitHubをprivateからpublicにするぞ!と思ったのですが、やはりというかファイルの変更部分にガッツリAPIキー載ってますね笑。APIキーを直接書いたまま1回でもコミットするとだめなのかな?その辺り明日くらいに調べてみようと思います。