larpon / QtFirebase

An effort to bring Google's Firebase C++ API to Qt + QML
MIT License
284 stars 83 forks source link

[iOS] FirebaseCore/Firebasecore.h not found #92

Closed saperlipopette45 closed 4 years ago

saperlipopette45 commented 5 years ago

Hello, and first of all thank you very much for all the huge work you put into this plugin !

I made it work perfectly with Android, but I have a problem under iOS.

I followed all of your steps. After downloading the Firebase iOS SDK, I unzip it and put it under the src/ios folder, (location of the sh script), this is the 5.8.0 of the SDK. But when building, I have the following error :

`In file included from ..../src/ios/AppDelegate.mm:4 FirebaseCore/FirebaseCore.h file not found

import <FirebaseCore/FirebaseCore.h>`

So I checked in the folder of the firebase SDK, and there is no FirebaseCore folder, maybe this come from the version of the iOS SDK ? I couldn't find zipped previous versions

Thank in advance for your help !

Markus87 commented 5 years ago

I had the same issue with the messaging subsystem, see #91 In this case I guess you are missing at least the -framework FirebaseCore in LIBS. Depending on what subsystems you try to get to work you should check the qtfirebase_target.pri and add frameworks to LIBS that are missing(I used google to find what frameworks are missing) until it works.

saperlipopette45 commented 5 years ago

Hello, thanks for your answer, I saw your issue and tried to do the same. I was also using messaging only, so I tried to compile the QtFirebaseExample project with all the components, and I still got the same error. The error came from the iOS SDK version. I had the 5.8.0, and i downloaded the 5.3.0 instead, and then only it worked. Download link

Markus87 commented 5 years ago

The firebase cpp sdk version I use is v5.3.0. I downloaded the firebase ios sdk using the script download_firebase.sh provided with QtFirebase, it seems to be v5.7.0 but it works so far.

If you try to build all components with newer version of the sdk you need to make changes to the linked frameworks in qtfirebase_target.pri. A few of the changes are documented here: https://firebase.google.com/support/release-notes/ios

saperlipopette45 commented 5 years ago

Yes I have the same version of cpp SDK, the link in the sh scripts is a download link from firebase where they provide the last version of their SDK, so it changes evey month I guess.

larpon commented 5 years ago

Hmm... They must've moved something around in the latest versions then. I'm hoping to get some more time for brushing things up in the coming weeks

larpon commented 5 years ago
adolby commented 5 years ago

It seems that Google has changed the naming of frameworks again with the C++ SDK v5.3.0 release.

These two frameworks are now needed to build Analytics (and probably Firebase core if you aren't including the Analytics module): GoogleAppMeasurement GoogleUtilities

And these two no longer exist: FirebaseNanoPb GoogleToolboxForMac

I've only tested the Analytics and Messaging modules for changes, so there could be more changes needed to fix other modules.

The latest Firebase iOS SDK is v5.9.0 now, so updating it is also advisable if you are using the latest C++ SDK v5.3.0.

adolby commented 5 years ago

I think that this was closed by 86f539a. However, it seems that FCM may not require Analytics/Core any longer, so this might be a requirement that QtFirebase can drop.

sdzurenko commented 5 years ago

Has anyone been able to resolve this problem without resorting to modifying the Google Firebase code?

With Google Firebase SDK 1.6.0, I have only been able to work around this issue by modifying the following files from the iOS Frameworks:

In Firebase.h, I need to change:

import <FirebaseCore/FirebaseCore.h>

to:

import

In FIRConfiguration.h, I need to change:

import <FirebaseCore/FIRLoggerLevel.h>

to:

import

And then I need to add the following to INCLUDEPATH in qtfirebase_target.pri: $$QTFIREBASE_FRAMEWORKS_ROOT/Firebase/Analytics/FirebaseCore.framework/Headers

Does anyone know why qmake isn't finding the FirebaseCore framework headers? According to the instructions at https://doc.qt.io/qt-5/qmake-platform-notes.html, I tried adding the following to qtfirebase_target.pri:

That doesn't help. Any ideas?

larpon commented 5 years ago

It's super weird - and I haven't been able to track it down as of this writing

qjcina commented 4 years ago

I encountered this issue in my project. Make sure your -F flags are properly set up, for example Firebase iOS SDK 6.14 changed Analytics folder name to FirebaseAnalytics. Also, make sure that your QTFIREBASE_CONFIG flag is properly set up. It works fine with Firebase iOS SDK 6.10.

ahmetcumhurarslan commented 4 years ago

Could you please serve a working ios example? i did it (one year) before, but after last changes i am working for three days and lost my way. i really want to stay within Qt but it gets harder to maintain.

davidzwa commented 4 years ago

I will give this problem one more shot once I get to work on Monday. I cannot promise anything as XCode builds are very very slow on our Mac Mini. We experience a XCode build problem very alike this issue. I do wonder if anyone has the same, and if this issue is qmake/make or deploy.

Sharm commented 4 years ago

Should be fixed with https://github.com/Larpon/QtFirebase/pull/152

larpon commented 4 years ago

Thanks @Sharm - it's in master now