firebase-ios-sdk icon indicating copy to clipboard operation
firebase-ios-sdk copied to clipboard

Firebase XCFrameworks are not codesigned

Open jmagman opened this issue 7 months ago • 18 comments

Description

Third-party SDK XCFrameworks now need to be codesigned, not just the framework binaries within them. This will be enforced by Xcode at some point in Spring 2024.

codesign --sign "Apple Developer cert etc" ... path/to/FirebaseAuth.xcframework

Now with signatures for SDKs, when you adopt a new version of a third-party SDK in your app, Xcode will validate that it was signed by the same developer, improving the integrity of your software supply chain.

https://developer.apple.com/support/third-party-SDK-requirements/

Note xcframework is a directory (bundle), not a binary. Though looks like Firebase binaries aren't codesigned either.

Docs

https://developer.apple.com/documentation/xcode/verifying-the-origin-of-your-xcframeworks https://developer.apple.com/videos/play/wwdc2023/10060/ Screenshot 2024-01-03 at 4 35 03 PM

cc @paulb777 (We're working on this for Flutter https://github.com/flutter/flutter/issues/140934)

Reproducing the issue

Download XCFrameworks from https://firebase.google.com/docs/ios/setup#frameworks. Drag into Xcode 15+, see Kind: Unsigned in the inspector.

Screenshot 2024-01-03 at 4 36 25 PM

$ codesign -d -vv Firebase/FirebaseAuth/FirebaseAuth.xcframework
Firebase/FirebaseAuth/FirebaseAuth.xcframework: code object is not signed at all

Firebase SDK Version

10.19

Xcode Version

15

Installation Method

Zip

Firebase Product(s)

All

Targeted Platforms

iOS

Relevant Log Output

No response

jmagman avatar Jan 04 '24 02:01 jmagman

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

google-oss-bot avatar Jan 04 '24 02:01 google-oss-bot

@jmagman Thanks for the report. @ncooke3 is in progress on meeting the new Apple signing requirements along with the privacy manifests #11490

paulb777 avatar Jan 04 '24 15:01 paulb777

👍 I saw the privacy manifest work but I didn't see anything about the signature requirement. Thanks!

jmagman avatar Jan 04 '24 19:01 jmagman

hello, any ETA when this codesigning will be included?

hendri-voodoo avatar Feb 14 '24 11:02 hendri-voodoo

Hi @hendri-voodoo, I do not have an eta to share, but the signing infra is taking longer to set up and may come after the release containing privacy manifests. We will keep this bug updated when we have an eta to share. https://github.com/firebase/firebase-ios-sdk/issues/11490#issuecomment-1936548699

ncooke3 avatar Feb 14 '24 14:02 ncooke3

@ncooke3 noted. When is your next release cycle?

hendri-voodoo avatar Feb 15 '24 16:02 hendri-voodoo

Hi Any updates on signing?

pavm035 avatar Mar 07 '24 04:03 pavm035

Hi Any updates on signing?

lakshmankreditbee avatar Mar 07 '24 12:03 lakshmankreditbee

Hi is it possible to provide an ETA for release with code signing?

GH-Ong avatar Mar 11 '24 03:03 GH-Ong

Hi Team any timeline where we can look for this ?

vksgautam1986 avatar Mar 12 '24 05:03 vksgautam1986

The target window is between late March and mid April and we're working to do it as soon as we can in that timespan.

paulb777 avatar Mar 12 '24 14:03 paulb777

Hi everyone, we are still actively working on this, but I do have an update to share. In the upcoming Firebase 10.23.0 (tentatively scheduled for next week), Firestore's SwiftPM binary distribution will feature signed XCFrameworks. In practice, this will apply to all of the XCFrameworks that are used when using Firestore with SPM: FirebaseFirestoreInternal.xcframework, openssl_grpc.xcframework, absl.xcframework, grpc.xcframework, and grpcpp.xcframework.

Support for signed artifacts in other binary distributions will follow in future releases.

ncooke3 avatar Mar 15 '24 14:03 ncooke3

Hi! I saw release 10.23.0 signed xcframeworks for Firestore. Sorry to ask but what is the ETA for the other packages? I'm sure it's already known but all the Firebase sdk are part of the special group that will get scrutiny by Apple https://developer.apple.com/support/third-party-SDK-requirements/

nicolobozzato avatar Mar 28 '24 15:03 nicolobozzato

We're working towards providing signed xcframeworks in the next minor release, due out the week of April 8th

paulb777 avatar Mar 28 '24 22:03 paulb777

We're working towards providing signed xcframeworks in the next minor release, due out the week of April 8th

Will the non-Firebase xcframeworks such as GoogleSignIn be also a target of the next release? For example, GoogleSignIn supports the privacy manifest in 7.1.0 release. I expect the new version of the xcframework is bundled in the Firebase release and it is codesigned, but am not sure if it is tracked.

shingt avatar Apr 05 '24 06:04 shingt

@shingt, yes. Every framework in the Firebase.zip will have a code signature.

ncooke3 avatar Apr 05 '24 14:04 ncooke3

Which release will have this fix? 10.23.2?

wojciech-kulik avatar Apr 05 '24 15:04 wojciech-kulik

10.24.0, which is scheduled to be released next week. I will update this issue when it is released.

ncooke3 avatar Apr 05 '24 15:04 ncooke3

Any update on the signed SDKs release yet?

iOSNinja avatar Apr 08 '24 20:04 iOSNinja

@iOSNinja just a hint: you can use 10.23.0 with Xcode 14.2 as a workaround. I've just sent the app to the review, it passed the validation.

wojciech-kulik avatar Apr 08 '24 20:04 wojciech-kulik

Thanks for the workaround @wojciech-kulik but i've upgraded all our build machines to > Xcode15 and was waiting for firebase to release the signed SDKs today as mentioned above.

iOSNinja avatar Apr 08 '24 21:04 iOSNinja

The 10.24.0 zip release is now available.

paulb777 avatar Apr 09 '24 20:04 paulb777

Has the Unity Firebase SDK provided signed xcframeworks for this points to version 10.24.0 of the iOS SDK which provided signed yet? Which version is it?

techbyte24 avatar Apr 10 '24 02:04 techbyte24

This issue was fixed and released in 10.24.0. The Firebase Unity SDK was updated to use 10.24.0 in v11.9.0 (https://github.com/firebase/firebase-unity-sdk/issues/991).

There is now a newer Firebase version to use, so I recommend upgrading to the latest Firebase version (currently 10.25.0) as that included some additional fixes. The corresponding Firebase Unity SDK release should be the next Firebase Unity SDK release.

ncooke3 avatar May 07 '24 18:05 ncooke3