GoogleSignIn-iOS icon indicating copy to clipboard operation
GoogleSignIn-iOS copied to clipboard

Binary XCFramework distribution

Open fabio914 opened this issue 4 years ago • 24 comments

Do you have plans to also distribute releases as XCFrameworks?

It's actually not straightforward to create an XCFramework from a Swift Package, and it's not always feasible.

fabio914 avatar Sep 21 '21 11:09 fabio914

I actually just updated the project that I was using to download GoogleSignIn with Carthage to use XCFrameworks.

fabio914 avatar Sep 21 '21 17:09 fabio914

No immediate plans, but open to this if there's sufficient demand.

petea avatar Sep 22 '21 17:09 petea

没有立即的计划,但如果有足够的需求,就会对此持开放态度。

can you do like this? https://github.com/firebase/firebase-ios-sdk/releases/tag/8.8.0

xhp281 avatar Oct 28 '21 03:10 xhp281

@petea A vote here 👋🏼

A distributed XCFramework makes building on Apple Silicon possible (well, easier) for us. We build with Bazel and Cocoapods/SPM aren't tools we utilize.

We can build ourselves as an alternative, but there is a modern utility to XCFrameworks now that all Mac Pros are Apple Silicon. If that's a big step, even including an arm64-simulator slice in the release would help.

erikkerber avatar Dec 08 '21 04:12 erikkerber

This is causing major issues for our workflow, we use firebase and are struggling to get Xcode to building for simulator on M1 macs. Can this pls be a priority

jpike88 avatar Jan 19 '22 05:01 jpike88

Plus one for distributing built xcframeworks

natanrolnik avatar Jun 13 '22 14:06 natanrolnik

any updates here? I have an old custom build system on my project and I can use only frameworks/xcframeworks to add new functionality. Any info about when we can get it? Or maybe any advices regarding to how I can make it myself? Thanks.

maksymbazala avatar Aug 03 '22 13:08 maksymbazala

Plus one for distributing built xcframeworks

azilbershtein avatar Aug 15 '22 17:08 azilbershtein

Any updates here ?

mmdumi avatar Oct 19 '22 10:10 mmdumi

I expect that we will add an XCFramework distribution to our release process, but I don't have a timeline.

Note that Firebase does release a GoogleSignIn XCFramework as part of their larger binary zip distribution, this may be helpful as a stopgap measure.

petea avatar Oct 19 '22 21:10 petea

Thank you @petea Converted to that one.

mmdumi avatar Oct 21 '22 10:10 mmdumi

This helps, thanks.

I am distributing a bunch of dependencies through a SPM and binaryTargets.

While including GoogleSignIn xcframework should I also include the Resources folder?

Looking at https://github.com/google/GoogleSignIn-iOS/blob/main/Package.swift#L74 it looks like the absolute path to this will be GoogleSignIn/Sources/Resources

Where and how should I place the Resources folder exposed in Firebase's release of GoogleSignIn in my SPM package?

dhaval12593 avatar Dec 08 '22 16:12 dhaval12593

+1

cassianomonteiro avatar Feb 16 '23 23:02 cassianomonteiro

+1

sandhive24 avatar Aug 26 '23 04:08 sandhive24

Just use Firebase Carthage manual. Those guys are the real deal. Add carfile

binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseGoogleSignInBinary.json"

wolfcon avatar Nov 27 '23 07:11 wolfcon

@wolfcon Those are versioned according to Firebase which are difficult (impossible?) to map to GoogleSignin versions.

erikkerber avatar Dec 04 '23 18:12 erikkerber

@wolfcon Those are versioned according to Firebase which are difficult (impossible?) to map to GoogleSignin versions.

That's a messy problem. But you can find GoogleSignIn version in info.plist(Framework file). As I know it is only way to map it..

That list covers most of Google service SDK which is always updated with every separated team. Better than manual import.

I have noticed one thing: (Quote)

Versioning

All Firebase components share the same version. Mixing and matching components with different versions may cause linker errors.

If you use multiple google service, the best way to integrate them is through Firebase version. They test it after all.

wolfcon avatar Dec 08 '23 06:12 wolfcon

Yeah we use GoogleSignIn alone (powers part of your Slack sign in!)

Being able to target specific versions of GSI without reverse engineering what Firebase version it belongs to is a must.

erikkerber avatar Dec 08 '23 17:12 erikkerber

Last way to achieve that goal is maintaining a self-managed GoogleSignIn which is updated by yourself manually, rather than Firebase. 😆

wolfcon avatar Dec 28 '23 02:12 wolfcon

That's what we do.

And is why this issue exists.

erikkerber avatar Dec 28 '23 17:12 erikkerber

Let official support..🫠

wolfcon avatar Dec 29 '23 06:12 wolfcon

+1. Same #391 According to recent privacy updates, the Apple Store requires a framework with a signature. We can't utilize CocoaPods or SPM due to constraints in our development environment.

phongth7 avatar Apr 17 '24 10:04 phongth7

We are running into the same issue here with the constraints of the signature on the .xcframework.

kevin-c-meister avatar May 02 '24 07:05 kevin-c-meister

You can always wrap GSI in your own .xcframework. If you do that, you can sign it yourself. Additionally, it seems that Apple is only going to enforce the signature and privacy manifest requirements for newly added dependencies [1] named in Apple's list of commonly used 3P frameworks [2]. From [1],

Starting May 1, 2024, new or updated apps that have a __newly added__ (emphasis added) third-party SDK that‘s on the list of [commonly used third-party SDKs](https://developer.apple.com/support/third-party-SDK-requirements/) will need all of the following to be submitted in App Store Connect:

  1. Required reasons for each [listed API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api)
  2. [Privacy manifests](https://developer.apple.com/support/third-party-SDK-requirements/)
  3. Valid signatures when the SDK is added as a binary dependency

Looks like if you are using GSI in a previously approved app, then I think the above means the privacy manifest and signature requirements will not be enforced for you.

Regardless, I understand that it's better to be safe; so, please update!

[1] https://developer.apple.com/news/?id=pvszzano [2] https://developer.apple.com/support/third-party-SDK-requirements/

mdmathias avatar May 02 '24 15:05 mdmathias