Firebase-ios-sdk: Firebase with Carthage compilation fails in Xcode 10 / Latest Firebase (framework not found MeasurementNanoPB)

Created on 29 Sep 2018  路  20Comments  路  Source: firebase/firebase-ios-sdk

[REQUIRED] Step 2: Describe your environment

  • Xcode version: 10.0 (10A255)
  • Firebase SDK version: Should be 5.9.0 / It Downloads 5.8.0. See log at the bottom

[REQUIRED] Step 3: Describe the problem

Integrating Firebase with Carthage, following instructions from https://github.com/firebase/firebase-ios-sdk/blob/master/Carthage.md leads to a compiler error in XCode.

framework not found MeasurementNanoPB

Steps to reproduce:

My Cartfile

binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDynamicLinksBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionFaceModelBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json"

Installed with this command:

carthage update --platform iOS

Also tried again cleaning Carthage cache with:

rm -rf ~/Library/Caches/org.carthage.CarthageKit

Same issue.

Relevant Code (Console Output):

*** Downloading binary-only framework FirebasePerformanceBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json" *** Downloading binary-only framework FirebaseDynamicLinksBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDynamicLinksBinary.json" *** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" *** Downloading binary-only framework FirebaseMLVisionFaceModelBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionFaceModelBinary.json" *** Downloading binary-only framework FirebaseStorageBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json" *** Downloading binary-only framework FirebaseMLVisionBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionBinary.json" *** xcodebuild output can be found in /var/folders/s0/4896qlp11bz9xflhhd1bcd3h0000gn/T/carthage-xcodebuild.V2JyMI.log *** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" *** Downloading FirebaseAnalyticsBinary.framework binary at "5.8.0" *** Downloading binary-only framework FirebaseDynamicLinksBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDynamicLinksBinary.json" *** Downloading FirebaseDynamicLinksBinary.framework binary at "5.8.0" *** Downloading binary-only framework FirebaseMLVisionBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionBinary.json" *** Downloading FirebaseMLVisionBinary.framework binary at "5.8.0" *** Downloading binary-only framework FirebaseMLVisionFaceModelBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMLVisionFaceModelBinary.json" *** Downloading FirebaseMLVisionFaceModelBinary.framework binary at "5.8.0" *** Downloading binary-only framework FirebasePerformanceBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json" *** Downloading FirebasePerformanceBinary.framework binary at "5.8.0" *** Downloading binary-only framework FirebaseStorageBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json" *** Downloading FirebaseStorageBinary.framework binary at "5.8.0"

Carthage

Most helpful comment

I see,

  1. Please add official support for Carthage
  2. Sync it with 5.9.0

For now, and as a workaround, I can live copying the nanopb.framework from the 5.9.0

Thanks

All 20 comments

Just to clear up. This is a project who was working fine with a previous FireBase version.

Downloaded the big zip from, as per instructions in https://firebase.google.com/docs/ios/setup?authuser=0, from here:

https://firebase.google.com/download/ios?authuser=0

Looks like is an issue in FireBase Analytics, so copying nanopb.framework to my Carthage build folder, makes it to work.

Anyhow, seems we have an issue in the json to download, as is downloading version 5.8.0 and not the 5.9.0 who is the latest

@pabloroca The nanopb.framework does seem to be in the 5.8.0 distribution:

$ unzip -l org.carthage.CarthageKit/binaries/FirebaseAnalyticsBinary/5.8.0/Analytics-87377f817d6f59df.zip | grep nanopb 163760 09-14-2018 09:34 nanopb.framework/nanopb 592 09-14-2018 09:44 nanopb.framework/Info.plist 1421 09-14-2018 09:34 nanopb.framework/Headers/pb_common.h 22631 09-14-2018 09:34 nanopb.framework/Headers/pb.h 5727 09-14-2018 09:34 nanopb.framework/Headers/pb_encode.h 5667 09-14-2018 09:34 nanopb.framework/Headers/pb_decode.h 91 09-14-2018 09:34 nanopb.framework/Modules/module.modulemap

The Carthage distribution is still experimental and does not stay fully in sync with the official release. There is not yet a 5.9.0 Carthage version available.

It was actually a mistake for 5.8.0 to include MeasurementNanoPB.framework since it was an exact duplicate of nanopb.framework(#1832).

I see,

  1. Please add official support for Carthage
  2. Sync it with 5.9.0

For now, and as a workaround, I can live copying the nanopb.framework from the 5.9.0

Thanks

Same problem here! Need new version of framework very urgent! Please!

Same problem

and me( Fix it please!

Same problem! :(

same problem

Same problem! :(

same problem ..

We're planning to do an update in about a week.

The Carthage distribution is still experimental and we're not promising to make every patch release available via Carthage. It would help with our prioritization if you would provide the reason if you request an update.

Even if the latest distribution is not available via Carthage, the latest binary frameworks are always available at https://firebase.google.com/docs/ios/setup#frameworks

We are having the same problem as well.

@paulb777 We need the update because with the current Carthage JSON spec, we can't build our apps due to the reasons explained in this post. framework not found MeasurementNanoPB. It might be resolved if you update the Carthage specs to point to the latest version 5.10.0

I'm planning to work on a Carthage 5.10.0 update today.

5.10.0 is now available via Carthage.

Can not podfile?
It's not possible. A framework not found MeasurementNanoPB message appears.

@paulb777 Thanks for updating, but the problem still exists as the performance SDK spec for version 5.8.0 (the latest one for performance) has not been corrected/updated to include MeasurementNanoPB.framework instead of the depreciated nanopb.framework. Would you mind looking into this?

@leedsalex There was a glitch in the update script and FirebasePerformanceBinary.json didn't properly update with 5.10.0. I just fixed it.

Sorry about the miss and thanks for the report!

@paulb777 Thanks, I see the new version now. I made a mistake too, I thought the MeasurementNanoPB was supposed to be included with FirebasePerformance but it looks like it's packaged with FirebaseAnalytics and the 5.10.0 version of it still has nanopb instead of MeasurementNanoPB. See this link found in the analytics JSON spec: https://dl.google.com/dl/firebase/ios/carthage/5.10.0/Analytics-b631d5470926967d.zip

Even if the latest distribution is not available via Carthage, the latest binary frameworks are always available at https://firebase.google.com/docs/ios/setup#frameworks

@paulb777 The link there seems to be to 5.9.0; changing the 9s in the link to 10s seems to get 5.10.0, but that doesn't work for 5.11.0, which seems to be the latest release tagged here.

@vokal-isaac 5.11.0 is currently in prerelease testing. This milestone will be closed when it is published - https://github.com/firebase/firebase-ios-sdk/milestone/18

Was this page helpful?
0 / 5 - 0 ratings