quickstart-unity icon indicating copy to clipboard operation
quickstart-unity copied to clipboard

[FR] Please provide firebase package with UPM git url

Open Thaina opened this issue 3 years ago • 13 comments

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

Thaina avatar May 21 '21 03:05 Thaina

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

google-oss-bot avatar May 21 '21 03:05 google-oss-bot

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 avatar May 21 '21 03:05 Thaina

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

Thaina avatar May 21 '21 04:05 Thaina

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

HanzaRu avatar May 21 '21 21:05 HanzaRu

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.

snorrsi avatar May 23 '21 02:05 snorrsi

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).

HanzaRu avatar May 23 '21 03:05 HanzaRu

8.1 was out. Please support this

Thaina avatar Jul 27 '21 07:07 Thaina

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

lufinkey avatar Apr 27 '22 16:04 lufinkey

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.

snorrsi avatar Apr 27 '22 16:04 snorrsi

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"
  }
}

felipemullen avatar Jul 10 '22 23:07 felipemullen

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 avatar Jul 11 '22 17:07 HanzaRu

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 :/

HanzaRu avatar Jul 11 '22 17:07 HanzaRu

@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.

snorrsi avatar Jul 11 '22 21:07 snorrsi