naichi's lab

3日後の自分(他人)への書き置き

【unity】unityプロジェクトにFirebase Analyticsを入れてみる(失敗)

f:id:naichilab:20161127032041p:plain

Firebase、気になってたので試してみる。

やったことをメモ

はじめに

つい最近(11/24だから3日前)、unity用のパッケージが出たらしい。
googledevjp.blogspot.jp

なんてタイムリーな。

環境

  • 書いた日:2016/11/27
  • Unity 5.5.0b4
  • firebase_unity_sdk 1.0.1

手順

基本はここに書かれてる通りにするだけ
https://firebase.google.com/docs/unity/setup

自分は Firebase Analytics しか使わないけど他も同じだと思う。

  1. Firebase上でアプリを追加

    • iOSアプリ

      f:id:naichilab:20161127025143p:plain:w320
      作成すると GoogleService-Info.plist がダウンロードされる。

    • Androidアプリ

      f:id:naichilab:20161127031247p:plain:w320
      作成すると google-services.json がダウンロードされる。

  2. ここから Firebase Unity SDK をダウンロードする。

    2016/11/27現在、firebase_unity_sdk_1.0.1.zip だった。
    中身はunitypackageの詰め合わせ
    f:id:naichilab:20161127025522p:plain:w320

  3. Unityプロジェクトを開いた状態で、 FirebaseAnalytics.unitypackage をダブルクリックして取り込む。

    なんかたくさんあるけど全部。
    f:id:naichilab:20161127025939p:plain:w320

  4. GoogleService-Info.plist をUnityフォルダにコピー

    どこでもいいって書いてあったので Assets/Plugins/iOS/Firebase/ に入れた。
    f:id:naichilab:20161127030700p:plain

  5. google-services.json をUnityフォルダにコピー

    どこでもいいって書いてあったので Assets/Plugins/Android/Firebase/ に入れた。
    f:id:naichilab:20161127031438p:plain

え、これだけ・・・

プッシュしてUnityCloudBuildの結果待ち。

ビルドエラー

f:id:naichilab:20161127033615p:plain:w480

101: [Unity] Assets/PlayServicesResolver/Editor/AdMobDependencies.cs(14,9): error CS0433: The imported type `Google.JarResolver.PlayServicesSupport' is defined multiple times
102: [Unity] /BUILD_PATH/rirunaichi.sun-human.debug-for-release-ios/Assets/PlayServicesResolver/Editor/Google.JarResolver.dll (Location of the symbol related to previous error)
103: [Unity] /BUILD_PATH/rirunaichi.sun-human.debug-for-release-ios/Assets/PlayServicesResolver/Editor/JarResolverLib.dll (Location of the symbol related to previous error)

JarResolverが2つあるとな。
たぶんもともとAdMob入れてたしやろなぁ。

たしかに2つある。

f:id:naichilab:20161127033706p:plain

コミット履歴を見る限りAdMobのと競合で間違いなさそうだ・・・

f:id:naichilab:20161127033923p:plain

安直に片方消してみる。さよなら JarResolverLib

ってなんか Install Android SDK Package ってのが動き出した 。いつからいた???

f:id:naichilab:20161127034122p:plain:w480

うおー怖い。

f:id:naichilab:20161127034334p:plain

ビルド壊れる予感がプンプンするぜ。

f:id:naichilab:20161127034401p:plain

Gitに身を委ねて全部OK、OK、、、

再度プッシュしてUnityCloudBuildの結果待ち。

結果

Android

ビルドは通った。

けど実機で実行するとアイコン押した瞬間に落ちる。

エラー内容

11-28 01:35:18.705: E/AndroidRuntime(6561): java.lang.NoSuchMethodError: No static method zzb(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzaa; or its super classes (declaration of 'com.google.android.gms.common.internal.zzaa' appears in /data/app/com.rircreate.sunhuman-2/base.apk)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at com.google.firebase.provider.FirebaseInitProvider.zza(Unknown Source)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.app.ActivityThread.installProvider(ActivityThread.java:5811)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.app.ActivityThread.installContentProviders(ActivityThread.java:5403)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5342)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.app.ActivityThread.-wrap2(ActivityThread.java)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.os.Handler.dispatchMessage(Handler.java:102)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.os.Looper.loop(Looper.java:154)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at android.app.ActivityThread.main(ActivityThread.java:6077)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at java.lang.reflect.Method.invoke(Native Method)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
11-28 01:35:18.705: E/AndroidRuntime(6561):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

iOS

ビルド通らず。

[Unity] Error running cocoapods. Please ensure you have at least version  1.0.0.  You can install cocoapods with the Ruby gem package manager:

cocoapodsがないとかなんとか・・・

ちとこれ以上調べてられないのでロールバックして終了〜

まとめ

いきなり現行プロジェクト(AdMobとかAdfurikunとか入ってる)に突っ込むのは無謀だったかも。

そのうちシンプルなプロジェクトで再挑戦する。