capacitor-community / firebase-analytics

Enable Firebase Analytics for Capacitor Apps
MIT License
160 stars 64 forks source link

[IOS] [FirebaseAnalytics][I-ACS013000] Screen parameter value must be of type NSString: (nil) #175

Open edshkliaruk opened 8 months ago

edshkliaruk commented 8 months ago

Describe the bug I faced with an issue related to

FirebaseAnalytics.setScreenName({
  screenName: 'The screen name',
});

What I see in logs

10.15.0 - [FirebaseAnalytics][I-ACS013000] Screen parameter value must be of type NSString: (nil) 10.15.0 - [FirebaseAnalytics][I-ACS031028] Received invalid class for screen: (nil)

To Reproduce Steps to reproduce the behavior:

  1. Run setScreenName method with some string value
  2. You won't see an error in your app but you will see this error in Xcode logs. And, eventually you won't receive screen_view event.

Expected behavior The library shouldn't have this error.

Screenshots

Screenshot 2024-01-25 at 16 18 47

Smartphone (please complete the following information):

Additional context Android handles this without any errors.

Also, I had a chance to debug this a little bit and maybe it will be useful: I removed nameOverride to check if it can resolve the issue.

Screenshot 2024-01-25 at 16 35 43
Sulorb commented 6 months ago

Same problem here. Tried to downgrade to this plugin in 4.0 and pod install and got the same result.

If someone can help us 🙏

thoechtl commented 2 months ago

@Sulorb You can simply provide a nameOverride param to fix the issue. This overrides the screen class name, which is not really useful in a Capacitor app anyway ...

FirebaseAnalytics.setScreenName({ // Sets screen name and logs screen view event.
  screenName: 'My screen',
  nameOverride: 'App' // Provide dummy screen class name to fix `nil` error on iOS.
});