【SwiftUI】CocoaPods導入手順とFirebaseの設定

# はじめに
今回はMacにCocoaPodsを設定し、Firebaseアプリ開発の手順を記載。

# 開発環境
OSX 10.15.7 (Catalina) 
Xcode 12.0.1
CocoaPods 1.10.0

# CocoaPodsの環境構築
CocoaPodsを設定します。
【参考】[CocoaPods](https://cocoapods.org/ "CocoaPods")

ターミナルで以下のコマンドを入力してください。

```CocoaPodsのインストール
sudo gem install cocoapods
```

以上でセットアップは完了です。

# Firebaseと連携する
### Firebaseのプロジェクトを作成する
Firebaseのプロジェクトを作成後、iOSを選択し、以下を入力します。
![Haiku_-_概要_-_Firebase_コンソール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/867981/3c655583-bf23-3c0e-e1d5-7f5ab20325e1.png)

iOSバンドルはプロジェクトのBundle Identifierを入力します。
今回はそのほかの項目は空欄のまま、「アプリの登録」を進めます。

![Haiku_xcodeproj.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/867981/80796863-e164-f9d6-61b6-7955a24492c8.png)

### GoogleService-Info.plist ファイルをXcodeに追加
次に、「GoogleService-Info.plist ファイル」をダウンロードし、Xcode プロジェクトのルートに追加します。

次に、ターミナルにXcodeの開発プロジェクトをドラッグアンドドロップし、起動します。
以下のコマンドを入力します。

```
pod init
```

そして、Podfile を開いて以下を追加します:

```
open Podfile
```

```shell
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Haiku' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

# 以下の行を追加
pod 'Firebase/Firestore'

  # Pods for Haiku
```

ファイルを保存し、次のコマンドを実行します。

```
pod install
```
実行すると、以下が出力されます。

```shell
Analyzing dependencies
Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
Downloading dependencies
Installing BoringSSL-GRPC (0.0.7)
Installing Firebase (7.0.0)
Installing FirebaseCore (7.0.0)
Installing FirebaseCoreDiagnostics (7.0.0)
Installing FirebaseFirestore (7.0.0)
Installing GoogleDataTransport (8.0.0)
Installing GoogleUtilities (7.0.0)
Installing PromisesObjC (1.2.11)
Installing abseil (0.20200225.0)
Installing gRPC-C++ (1.28.2)
Installing gRPC-Core (1.28.2)
Installing leveldb-library (1.22)
Installing nanopb (2.30906.0)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `Location Sharing.xcworkspace` for this project from now on.
Pod installation complete! There is 1 dependency from the Podfile and 13 total pods installed.

[!] Automatically assigning platform `iOS` with version `14.0` on target `Location Sharing` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
```

インストールが完了すると、Xcodeのプロジェクトフォルダに"Pods"フォルダが作成されます。
Firebaseはそのまま次へと進み、「コンソールへ移動」し、設定を完了させます。

# Xcodeプロジェクトの編集
```swift:AppDelegate.swift
import UIKit
// 以下を追加
import Firebase

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.        
        // 以下の行を追加
        FirebaseApp.configure()

        return true
    }
```

そのほか、編集するViewファイルにも

```
import Firebase
```
を追加入力し、設定は完了です。


### 【注意】 エラーが出た場合
'pod install'し、プロジェクトのAppDelegate.swiftファイルに'import Firebase'を打ったら、

```
Error: Could not build Objective-C module 'Firebase'
```
のエラーがでました。
その場合は、以下の作業を進め、再度入力したら、エラーは出なかったです。

【参考】
[STACK OVERFLOW：Error: Could not build Objective-C module 'Firebase'](https://stackoverflow.com/questions/41709912/error-could-not-build-objective-c-module-firebase)

【手順】
1. Xcode を閉じる
2. ~/Library/Developer/Xcode/DerivedData にあるプロジェクトフォルダを削除する
3. Xcodeのプロジェクトフォルダにある'ProjectName.xcworkspace'を削除する
4. Xcodeのプロジェクトフォルダにある'Podfile.lock'ファイルと'Pods'フォルダを削除する
5. ターミナルで ```pod install```を再度入力
6. Xcodeのプロジェクトフォルダにある'ProjectName.xcworkspace’ファイルを開く
以上です。