LoginSignup
0
0

More than 1 year has passed since last update.

Firebaseでプッシュ通知を行う①(Carthage編)

Last updated at Posted at 2021-09-21

はじめに

FirebaseのFirebase Cloud Messagingを使って、

プッシュ通知をするまでにいくつか躓いたため、

手順としてメモを残していきます。

今回はCarthageを使って、Firebase iOS SDKをXcodeに追加する部分を記載していきます。

Carthageとは

  • Swiftで作られたライブラリ管理ツール
  • ライブラリ導入時にビルドするため、コンパイル時間がCocoaPodsより短くなる
  • メジャーなSDKに対応していない場合もあるため注意(詳しくはGithub参照)

やること

  • CarthageでFirebase iOS SDKを管理
  • Firebase Cloud Messagingからメッセージの作成

動作環境

  • MacOS : Big Sur 11.5.2
  • Xcode : 12.5.1
  • Firebase iOS SDK : 8.7.0

前提条件

  • brewがインストールされていること

事前準備

プロジェクトのディレクトリを作成&移動

mkdir PushNotificationSampler && cd $_

Carthageをインストールする

brew install carthage

Cartfile作成(CocoaPods でいうPodfile)

touch Cartfile

Cartfileに必要なライブラリを記述

使用したいライブラリをCartfileに記載します。

今回はFirebase Cloud Messagingのライブラリを追加します。

※FirebaseAnalyticsBinaryは必須で追加する必要

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

ちなみに現時点で使用できるFirebaseのライブラリ一覧は以下のとおりです。

binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseABTestingBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAdMobBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAppCheckBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAppDistributionBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseCrashlyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDatabaseBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDynamicLinksBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFunctionsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseGoogleSignInBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInAppMessagingBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLModelDownloaderBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json"

Cartfileに記載したライブラリをビルド

carthage update --platform iOS

iOSの分だけビルドするために、—platform iOSをつけています。

(つけない場合watchOS やOSXの分もビルドされる)

下記のディレクトリ及びファイルが作成されたことを確認する

  • Carthageディレクトリ
  • Cartfile.resolvedファイル
ls
Cartfile
Cartfile.resolved
Carthage

Xcodeの設定

XcodeにSDKを追加する

プロジェクトファイル > Generalタブ > Frameworks, Libraries, and Embedded Content
qiita_01.png

Add Other > Add File で以下のファイルを追加する

~/Desktop/PushNotificationSampler/Carthage/Build/FirebaseAnalytics.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/FirebaseCore.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/FirebaseAnalytics.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/FirebaseCoreDiagnostics.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/FirebaseMessaging.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/GoogleAppMeasurement.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/GoogleDataTransport.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/GoogleUtilities.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/nanopb.xcframework
~/Desktop/PushNotificationSampler/Carthage/Build/PromisesObjC.xcframework

追加したライブラリのEmbedをDo Not Embedに変更する
qiita_02.png

Build Settingsタブ > Linker >Other Linker Flags に$(OTHER_LDFLAGS) -ObjCを追加する
qiita_03.png

※ -ObjCを下記のように小文字にするとエラーとなります。

✗ $(OTHER_LDFLAGS) -Objc

以上がCarthage特有の設定となります。

参考文献

firebase-ios-sdk/Carthage.md at master · firebase/firebase-ios-sdk

Firebase iOS SDK(Crashlytics)をCarthageで管理する - Qiita

iOS初心者がCarthage導入する💪 - Qiita

0
0
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
0
0