LoginSignup
32
24

More than 5 years have passed since last update.

Firebase環境構築メモ (using Carthage)

Last updated at Posted at 2019-02-12

What

Carthageを使ってFirebase (今回はその中のFirebaseAnalyticsとFirebaseFirestore) を使用するプロジェクトをビルドするのに少し手間取ったので、その際に必要だった作業のメモです。

Goal

今回はFireStoreが使いたかったので、以下の2つのビルドが成功した時点をゴールとします。

  • FirebaseAnalytics
  • FirebaseFirestore

Environments

  • MacOS 10.14
  • Xcode 10.1
  • Carthage 0.31.2

How

基本的にオフィシャルのGithub Repositoryに置かれているドキュメントを読んでそのとおりに実行します。

Cartfile

まずCartfileに以下を追記して carthage update を実行します。

Cartfile
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"

Link Binary With Libraries

上記手順で Carthage/Build/iOS/ に生成された *.frameworkLink Binary With Libraries に追加します。

私の場合は以下のようなファイルでした。

image.png

Other Linker Flags

"Other Linker Flags" in "Build Settings" に -ObjC が設定されていない人はしておきます。

Pasted_Image_2019_02_12_2_32.png

Import GoogleService-Info.plist

Firebase consoleから GoogleService-Info.plist を取得していない人は取得してプロジェクトにインポートしておいてください。

Remove Firebase.framework

ここで Firebase.frameworkLink Binary With Libraries から削除してください(そもそも上の手順で入れなければ良さそう)。

理由についてはこちらのgithub issue上のコメントにあります。

Import Bundle

ここで必要に応じて "Copy Bundle Resources" in "Build Phase" にリソースファイルを追加します。

今回の手順ではFirebaseFirestoreを使用しているので Carthage/Build/iOS/FirebaseFirestore.framework/gRPCCertificates.bundle が必要です。

image.png

Link Dependent Libraries

さてオフィシャルの手順書的にはこれでほぼ終わったも同然なのですが、最後の

Some additional libraries/frameworks may be needed depending on which Firebase frameworks you use

が曲者です。何が必要なのかなんとなく分かるけど、トライアンドエラーが必要。

というわけでビルドを試して出てきたエラーログと格闘した結果今回使うFirebase frameworksが依存していたのは以下の3つだったので、これらを Link Binary With Libraries に入れることで無事ビルドすることができました。FirebaseAnalyticsに値が送られていることも確認できたので無事動いているようです。

  • libsqlite3.tbd
  • libc++.tbd
  • StoreKit.framework

まとめ

CocoaPodsを使えばもうちょっと簡単にできるのですが、将来的なものとかCI環境とかを考えるとできるだけCarthageに寄せていきたい気持ちなので、多少の頑張りで解決できる部分は対応していきたい。

References

32
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
24