Integrating Firebase Analytics to Android Ultimate Plugin For Unity3d

Hi Guys, After we successfully integrate the Google play services and Google Mobile Ads to Android Ultimate Plugin today we will try to also Integrate the Firebase Analytics which came from this link

https://firebase.google.com/docs/analytics/unity/start

Setting Up Guides

https://firebase.google.com/docs/unity/setup

Before you start Integrating Firebase Analytics you need to provide 1st the SHA1 and SHA256 on firebase project settings to get this keys on your keystore follow this links

https://developers.google.com/android/guides/client-auth

 

For quick start guides on how to integrate firebase analytics and use inside Unity3d

https://github.com/firebase/quickstart-unity/blob/master/analytics/testapp/readme.md

To know on how to log events on firebase analytics follow and read this link

https://firebase.google.com/docs/analytics/unity/events

More information on Firebase Events

https://firebase.google.com/docs/reference/unity/class/firebase/analytics/firebase-analytics#eventaddpaymentinfo

More information on Parameters

https://firebase.google.com/docs/reference/unity/class/firebase/analytics/parameter

For setting user properties

https://firebase.google.com/docs/analytics/unity/properties

For Linking your google play or android app on Google play follow this link

https://support.google.com/firebase/answer/6392038?hl=en&ref_topic=6317497

https://firebase.google.com/support/guides/integrate-play-games

Note: if you have google play services plugin inside your Unity3d Project you will get some conflict on the google resolver jars , so what i do is i just remove the resolver from google play services plugin and after that a popup will appear on Unity3d Editor that asking you to install the dependencies and then just install and accept it after that you will see a lot of new libraries inside your Android Plugin folder and it will also replace your libraries with the new one which is not good because it might cause some problems or error on your other Android Plugin.

Here’s what happen, we successfully build the apk on Android Device

Things that still working

  1. Google Admob
  2.  Android Ultimate Plugin

Things that is not working

  1. Google play services the app crashed when try to login

How to fix the Android Errors?

Alright after searching  on different forums and support groups we find out from other people that the play services .aar files with 10.0.20 version have conflict on google play services to fix this change everything into version 10.0.1 both play services .aar files and firebase-analytics .aar files after that just build normally and everything should be fixed by now on our end everything is working fine after this changes and we also check the firebase dashboard and yes it detects that firebase analytics is running and active

Note: all of the .aar files must be the same version to make this build and run sucessfully

How to fix IOS xcode errors?

Yes it’s a bad news after we build the xcode project using unity3d we got lot’s of errors and yes it’s because of Firebase Analytics plugin for untiy3d and we spent lots of hours trying to find the solution on it and at last we got lucky so the solution is

  1. delete all the derived data on your machine because xcode get confused sometimes or most of the time when adding new framework or library this can be done by going to your Library/Developer/Xcode/DerivedData
  2.  force  build clean project the shortcut keys is cmd + shift + alt + k
  3. Delete all files inside pod directory
  4. open your terminal and then pod update
  5. build clean again once more and build the project on your device
  6.  if you still get error try to delete the frameworks and library that you add  and add it again this is weird but it works 🙂

more tips:

  1. when build ios or xcode project in unity3d always use build only dont use build and run and used Append not replace to avoid doing all the settings and fixes again that’s nightmare!!!
  2.  when opening the xcode project double click the work space not the xcode project file this will create a weird errors
  3.  always  build clean every time you open your xcode project and before building

and that’s the step we go through before we finally build it successfully on ios device.

 

And Here’s the list of other things you can do with Firebase

Firebase Cloud Messaging for Unity3d

https://firebase.google.com/docs/cloud-messaging/unity/client

Manage Users on Firebase for Unity3d

https://firebase.google.com/docs/auth/unity/manage-users

Firebase realtime Database for Unity3d

https://firebase.google.com/docs/database/unity/start
Firebase Storage for Unity3d

https://firebase.google.com/docs/storage/unity/start

Firebase Remote Config for Unity3d this is the best you can modify you game config and settings without actually uploading  a new build on google play store

https://firebase.google.com/docs/remote-config/use-config-unity

Firebase Invite for Unity3d

https://firebase.google.com/docs/invites/unity

And that is our findings, i hope this information helps you out and saves you a lot of time unlike us but yes we are happy to help you out 🙂

For more questions or comments or suggestions just email us at gigadrillgames@gmail.com

 

Merging Android Ultimate Plugin 1.7.1 on Google Play Services Part 2

Hi Guys, this is the continuation of my last post, last time we try to used both Android Ultimate Plugin version 1.7.1 with google play services that can be found on this link https://github.com/playgameservices/play-games-plugin-for-unity

and we encounter a lot of errors and we spend almost 2 days on finding a way on how to fix this plugin and libraries conflict and we found out the following check list

  1.  make sure all of your Android Manifest file in your project have the same min sdk value and target sdk value , as in every Android Manifest files search your whole project this usually is the caused of conflicts
  2. make sure your Android Manifest File that is using google play services is using this  meta  <meta-data android:name=”com.google.android.gms.version” android:value=”@integer/google_play_services_version” /> take note do not hardcode the version number and make sure that this meta tag is inside <Application TAG> not inside <Activity TAG>
  3.  if you have a values.xml with gms  with hardcoded version number inside just delete it , this values.xml file will just make everything worst
  4. See to it that the Android Plugin that you are using is using provided instead of compile on their Build.gradle dependency settings for classes.jar which is the jar that came from unity3d app directory. because if this is compile it will conflict on Unity3d Classes.jar because i think unity3d put classes.jar automatic when we build on Android

Some optional checklist that people says on stack overflow, unity3d forum and other forums

  1.  Right now  (  Unity3d version 5.5.1f1 ) the max  Android API support is 23 so delete the build tools and please don’t delete the SDK tools 🙂 just build tools greater than 23 API on your Android SDK.
  2.  Make sure your target SDK on your Android Manifest is declare unless unity3d will used the maximum SDK available on your machine.

And that’s the checklist and now back to using  both Android Ultimate Plugin and Google play services these are the steps

  1.  make sure all Android Manifest on your project is using this min sdk  and target sdk  <uses-sdk android:minSdkVersion=”9″ android:targetSdkVersion=”16″ />
  2.  Unity3d Player Settings should be set to minimum API 9 too
  3.  Make sure you use these exact libraries as of now we tested these and it works
  •  appcompat-v7-23.0.1.aar
  • support-v4-23.0.1.aar
  • play-services-games-9.2.1.aar
  • play-services-base-9.2.1.aar
  • play-services-basement-9.2.1

Note: some of these libraries are included when you import the google play services plugin

you can download these new libraries on this link because Unity3d  asset store for sure will not allow this libraries to be included on the plugin  https://drive.google.com/file/d/0Bw14w3QBZaGxek5haDNNeVNTRGc/view?usp=sharing

More Steps

  1.  check all the project.properties files in your project they all should used the same TargetSDK value if not you will have a conflict and it’s very high
  2.  find any values.xml lurking around with hard coded google play services values inside and delete them they create lot’s of problems
  3.  make sure you don’t have any duplicate Libraries jar,aar files and other library files they will introduce conflict as well.

And then after these changes we successfully build our project with both Android Ultimate Plugin and Google play Services and they work 🙂

The Game Sample with Google Play Services, Admob, Android Ultimate Plugin and Firebase Analytics

https://play.google.com/store/apps/details?id=com.gigadrillgames.fingervsants

here in this game we used both google play services and AUP , on share we use our plugin see it works 🙂

That’s it,  i hope this guide can help you find the problems and the conflict when using more android plugin in Unity3d Projects.

 

Update 02/12/2017

We have encounter some errors when building on xcode

Take Note this errors is came from the google play services not from our plugin to make things clear

For more details please follow read this link

http://www.gigadrillgames.com/2017/02/13/google-play-games-plugin-for-unity3d-possible-fixed-for-xcode-project/

 

for more questions or comments or suggestions just email us at gigadrillgames@gmail.com and if you have time please like our page https://www.facebook.com/gigadrillgames

Thanks for visiting and reading 🙂