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回でもコミットするとだめなのかな?その辺り明日くらいに調べてみようと思います。