LoginSignup
2
2

More than 1 year has passed since last update.

Godot用 iOS版 Firebase Analytics のプラグインを作った

Last updated at Posted at 2022-02-10

概要

最近はGodotでゲームを作っています。主にiOS、Androidアプリ向け。
そこで、Android, iOSアプリにそれぞれ、Firebaseを入れたいのですが、各々対応しないといけません。Androidのほうはプログラムを書く必要が無いので簡単でAndroid Studioのbuild.gradleに追記とgoogle-services.jsonを追加するだけです。(普通のアプリ開発の作業と同じ)
ただ、iOSのほうはプログラムの記述が必要なのでちょっと面倒です。いいプラグインがないか調べた結果、これを使うって定番のもなく、一応存在はするけど使ってみた感じいまいちだったので、自分で作ることにしました。
こちらです
https://github.com/funseek/godot-ios-firebase-analytics

プラグインの作成方法

これは公式ページに記載がありますので、こちらを参考にしました。
https://docs.godotengine.org/ja/stable/tutorials/platform/ios/ios_plugin.html

ざっくり言うと、

  1. Xcodeで新規プロジェクトを作成(Objective-C static library)
  2. HEADER_SEARCH_PATHSにgodotのheaderファイルの場所を書く
  3. OTHER_CFLAGSに項目追加
  4. プラグインのプログラムを書く
  5. 完了後ビルドして、.a or .xcframeworkを作成
  6. 拡張子がgdipというファイルを作成。中身はプラグインの詳細を記載

※この先はライブラリ読み込み側の話

  1. プロジェクトのHOMEディレクトリに作成したファイルたちをコピーする。ios/plugin/の下
  2. exportでiOSを選択。Pluginsのチェックボックスにチェックを入れる

使い方

git clone

リポジトリをcloneします。submoduleでgodot本体のリポジトリも入ってますので一緒に落とします。

git clone --recurse-submodules git@github.com:funseek/godot-ios-firebase-analytics.git

godot本体ソースのheaderファイルを作成

./scripts/generate_headers.sh

※結構時間がかかりますが、ヘッダーファイル自体はすぐ作られるので終わるのを待つ必要はないです。

pod install

Firebase関連のファイルはCocoaPodsで取得します。

pod install

.aライブラリファイルの作成

./scripts/release_static_library.sh 3.4

※今は3.4のみになってます。別のバージョン指定したい場合は、SConstructファイルの3.4の箇所を置換してください

プロジェクトにコピー

作成された.aファイルをgodotのプロジェクトにコピーします。

cp bin/release/firebase-analytics/firebase-analytics.*.a $GODOT_HOME/ios/plugins/firebase-analytics/bin/
cp firebase-analytics.gdip $GODOT_HOME/ios/plugins/

iOS用にエクスポート

iOS用にエクスポートしてください。PluginsのFirebase Analyticsの箇所のチェックを入れるのを忘れずに
Screen Shot 2022-02-10 at 8.46.29.png

Xcodeの設定

XcodeはCocoaPodsを使ってください。Podfileに以下を追記します。

pod 'Firebase/Analytics'
pod 'Firebase/Auth'
pod 'Firebase/Firestore'

CocoaPodsを使う手順は以下です。

  1. pod initを実行(まだ使ってない場合)
  2. Podfileに上記を追記
  3. pod installを実行
  4. プロジェクト名.xcworkspaceのほうをXcodeで開く
  5. GoogleService-Info.plistをプロジェクトにコピー(Firebaseの管理画面からダウンロードできます)

これで無事動けば完了です

※外部ライブラリに依存するプラグインは外部ライブラリをそれぞれコピーして読み込む形が取られてることが多いのですが、プラグイン毎に依存ライブラリをコピーして使うと、同じライブラリでもバージョン違いとかでエラーになったりして面倒な気がしてます(実際になりました)。なので依存ライブラリはCocoaPodsで一括管理したほうがいいと思います(個人の感想です)。依存ライブラリの例として、Firebase, AdMobなど

その他

それ以外で以下のプラグインも作りました。

レビューリクエストダイアログを表示するプラグイン
https://github.com/funseek/godot-ios-request-review

ATTダイアログを表示するプラグイン
https://github.com/funseek/godot-ios-att

※ここまで書いて気づいたのですが、作ったプラグイン自体もCocoaPodsで読み込む形にすれば利用簡単なのでは?と思った。今度試して見ます

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