firebase / quickstart-unity

Firebase Quickstart Samples for Unity
https://firebase.google.com/games
Apache License 2.0
836 stars 430 forks source link

[FR] Please provide firebase package with UPM git url #1052

Open Thaina opened 3 years ago

Thaina commented 3 years ago

Feature proposal

With Game Package Registry by Google was shut down as of #1028. We understand the complication but the UPM system to include package still allow direct git dependency

With that, Google should create git repo for firebase package in github, maybe making a Release folder in this repo directly, and allow us to include all firebase package with this method in addition to .tgz

FYI, UPM has feature to include with path for pointing to specific subfolder https://docs.unity3d.com/Manual/upm-git.html#subfolder so we could only have one repo for all firebase module and point it to separate subfolder

google-oss-bot commented 3 years ago

I found a few problems with this issue:

Thaina commented 3 years ago

Also by releasing with git repo, firebase should not need to build dll for it's module anymore. Please just release the firebase for unity raw source code (even it auto generate it should still be able to release that isn't it?), it better for unity system and also allow firebase to target specific version with preprocessor directives. We could also debug and fix bug with it or fork it when needed

Thaina commented 3 years ago

There is official comment from unity that using git url in UPM are not related to their new terms. It should be considered that using git url with UPM are no difference from using tgz

https://forum.unity.com/threads/updates-to-our-terms-of-service-and-new-package-guidelines.999940/#post-7158721

HanzaRu commented 3 years ago

Hi, we set up all the packages (latest version) on https://github.com/GameWorkstore/ to support our CI's worldwide.

When Google listen to us and set up an official way where we don't need to download every single tgz and duplicate them over thousands of Repos, I redirect the GitHub Repos to the correct UPM distribution method 👍

While this, up-voting this issue. +1

snorrsi commented 3 years ago

Hi, we set up all the packages (latest version) on https://github.com/GameWorkstore/ to support our CI's worldwide.

When Google listen to us and set up an official way where we don't need to download every single tgz and duplicate them over thousands of Repos, I redirect the GitHub Repos to the correct UPM distribution method 👍

While this, up-voting this issue. +1

That's pretty neat @john-rosa-playkids .. however one thing that would make it better is to include the version number in branch name we could refer to. As I like to make direct reference to package and version for easier version management.

HanzaRu commented 3 years ago

Hi, we set up all the packages (latest version) on https://github.com/GameWorkstore/ to support our CI's worldwide. When Google listen to us and set up an official way where we don't need to download every single tgz and duplicate them over thousands of Repos, I redirect the GitHub Repos to the correct UPM distribution method 👍 While this, up-voting this issue. +1

That's pretty neat @john-rosa-playkids .. however one thing that would make it better is to include the version number in branch name we could refer to. As I like to make direct reference to package and version for easier version management.

I added a Release/Tag on upm branch with the current version on each package, so you can set the version at the end (ex. git://github.com/GameWorkstore/com.google.play.common#1.4.0) if you get afraid of undesired updates (although unity upm for git already locks packages in the git commit ref, at packages-lock.json, even if you don't specify the version).

Thaina commented 3 years ago

8.1 was out. Please support this

lufinkey commented 2 years ago

Is there any word on this? The analytics sdk adds over 100mb to the repo size

snorrsi commented 2 years ago

Google Play Unity Plugins have all their available as UPM packages from github. Please support this for Firebase Unity SDK, it's a bit silly having to fetch this from 3rd party repository as the .tgz have the same content as a UPM package needs.

felipemullen commented 2 years ago

July/2022 Update

Using git:// links provided in the mentioned issue https://github.com/firebase/quickstart-unity/issues/1028#issuecomment-857454685 is no longer working, since github removed git:// support at the end of 2021:

https://github.blog/2021-09-01-improving-git-protocol-security-github/

In order to make this work

You can still use the git urls, but the only way I was able to make them work was by manually modifying manifest.json, I was not able to use any form of github url in the unity editor gui (note the use of git+https://):

{
    "dependencies": {
    ...
    "com.google.external-dependency-manager": "git+https://github.com/GameWorkstore/com.google.external-dependency-manager#1.2.172",
    "com.google.firebase.app": "git+https://github.com/GameWorkstore/com.google.firebase.app#9.1.0",
    "com.google.firebase.auth": "git+https://github.com/GameWorkstore/com.google.firebase.auth#9.1.0"
  }
}
HanzaRu commented 2 years ago

July/2022 Update

Using git:// links provided in the mentioned issue #1028 (comment) is no longer working, since github removed git:// support at the end of 2021:

https://github.blog/2021-09-01-improving-git-protocol-security-github/

In order to make this work

You can still use the git urls, but the only way I was able to make them work was by manually modifying manifest.json, I was not able to use any form of github url in the unity editor gui (note the use of git+https://):

{
    "dependencies": {
    ...
    "com.google.external-dependency-manager": "git+https://github.com/GameWorkstore/com.google.external-dependency-manager#1.2.172",
    "com.google.firebase.app": "git+https://github.com/GameWorkstore/com.google.firebase.app#9.1.0",
    "com.google.firebase.auth": "git+https://github.com/GameWorkstore/com.google.firebase.auth#9.1.0"
  }
}

@felipemullen better you use anonymous checkout:

{ "dependencies": { ... "com.google.external-dependency-manager": "https://github.com/GameWorkstore/com.google.external-dependency-manager.git#1.2.172", "com.google.firebase.app": "https://github.com/GameWorkstore/com.google.firebase.app.git#8.9.0", "com.google.firebase.auth": "https://github.com/GameWorkstore/com.google.firebase.auth.git#8.9.0", } }

Cheers o/

HanzaRu commented 2 years ago

Again, if google team host an official git repo for install using UPM would be better for the entire community. While they don't move we need to figure out our own way :/

snorrsi commented 2 years ago

@HanzaRu that's one to solve it.. except I use macos.. so I downloaded the tgz file and took a look.

I checked out the bundle file using otool otool -L FirebaseCppApp-x86-64-9_1_0.bundle

I saw it included both x86_64 and arm64 architecture. After copying the original I tried splitting them up using lipo cp FirebaseCppApp-9_1_0.bundle FirebaseCppApp-arm64-9_1_0.bundle cp FirebaseCppApp-9_1_0.bundle FirebaseCppApp-x86_64-9_1_0.bundle lipo -remove x86_64 FirebaseCppApp-arm64-9_1_0.bundle -o FirebaseCppApp-arm64-9_1_0.bundle lipo -remove arm64 FirebaseCppApp-x86_64-9_1_0.bundle -o FirebaseCppApp-x86_64-9_1_0.bundle

.. and that should solve our issue as each file is 70mb or so.. to do this automatically on Github we just need new meta file/files, that is if we can use lipo on Github or I can do it manually.