larpon / QtFirebase

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

Push notification warning when uploading to Apple Store Connect. #138

Closed Katos closed 4 years ago

Katos commented 4 years ago

Hey, But by default when uploading app to TestFlight you will be getting warning about Push Notification being disabled. In my current project I'm not using push notifications for anything nor I need them so I don't want to go through process of enabling it as explained in https://github.com/Larpon/QtFirebase/blob/master/docs/SETUP_IOS.md. Is there maybe a way to disable push Notification in the QtFirebase project?

One of the solution i have found on StackOverflow is to add FirebaseAppDelegateProxyEnabled and set it to NO to Info.plist but it doesn't seems to work.

TMS-90078: Missing Push Notification Entitlement - Your app appears to register with the Apple Push Notification service, but the app signature's entitlements do not include the "aps-environment" entitlement. If your app uses the Apple Push Notification service, make sure your App ID is enabled for Push Notification in the Provisioning Portal, and resubmit after signing your app with a Distribution provisioning profile that includes the "aps-environment" entitlement. Xcode does not automatically copy the aps-environment entitlement from provisioning profiles at build time. This behavior is intentional. To use this entitlement, either enable Push Notifications in the project editor's Capabilities pane, or manually add the entitlement to your entitlements file. For more information, see https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/HandlingRemoteNotifications.html#//apple_ref/doc/uid/TP40008194-CH6-SW1.

larpon commented 4 years ago

Hi @Katos - hmm... Good question :grimacing: - it should be possible. It's been quite a few versions (years) since I've uploaded anything to the App Store myself.

Make sure that you don't include any messaging libs by leaving out messaging from QTFIREBASE_CONFIG += ... <- (no "messaging" in this entry) before you include qtfirebase.pri

larpon commented 4 years ago

Also make sure this and this aren't interfering with your setup.

Katos commented 4 years ago

I have info.plist set up properly. And I'm only including QTFIREBASE_CONFIG += analytics. If I'm correct then it does mean that apple static code analize catch it regardless if push notifcation is used or not. Thanks for help. Most liekly will just enable push notification then.

larpon commented 4 years ago

Hmm... Yeah - But I remember not having these problems at the time we started the project (before messaging was implemented, but available - that's why I think it should be possible) - but so much has changed since then.

larpon commented 4 years ago

It might also be triggered in the iOS SDK. I guess you could ask here where in the setup they ask for/enable these attributes?

Katos commented 4 years ago

After some digging i discovered that the problem lies in Firebae itself. Here is topic about it: https://github.com/firebase/firebase-ios-sdk/issues/2807. It is marked as fixed but looks like it is not true. Regardless i'm closing this topic and thanks for help.

Unralated to this topic i have discovered that in qtFirebase analytics is including more libs that actually is needed:

            -framework StoreKit \
            -F$$QTFIREBASE_FRAMEWORKS_ROOT/Analytics \
            -framework FirebaseAnalytics \
            -framework FirebaseCore \
            -framework FirebaseCoreDiagnostics \
            -framework FirebaseInstanceID \
            -framework GoogleDataTransport \
            -framework GoogleDataTransportCCTSupport \
            -framework GoogleAppMeasurement \
            -framework GoogleUtilities \
            -framework nanopb \

but based on doc of firebase it only require

FirebaseCore
FirebaseInstanceID
GoogleAppMeasurement
GoogleUtilities/AppDelegateSwizzler
GoogleUtilities/MethodSwizzler
GoogleUtilities/NSData+zlib
GoogleUtilities/Network
nanopb

so

            -framework FirebaseCoreDiagnostics \
            -framework GoogleDataTransport \
            -framework GoogleDataTransportCCTSupport \

shouldn't be needed, unless there is reason for it. But when I build it, it looks like it was working fine, as I was checking if maybe those libs are the reason for a warning.

larpon commented 4 years ago

@Katos - thanks a lot for your detective work!

I'm aware that we're including some old frameworks. It's hard for me to keep up with the changes in the Firebase SDK. So thanks for sharing this