Alex Krzyżanowski Alex Krzyżanowski - 5 months ago 17x
Swift Question

Use of unresolved identifier FBSDKAppEventNamePurchased

I'm trying to log some events in my iOS application using the Facebook Analytics SDK.

First, I logged an event and this works well:

FBSDKAppEvents.logEvent(FBSDKAppEventNameInitiatedCheckout, valueToSum: price, parameters: parameters)

Then I tried to log the next one:

FBSDKAppEvents.logEvent(FBSDKAppEventNamePurchased, valueToSum: price, parameters: parameters)

And Xcode says that there is no such identifier named

I dived into the Facebook documentation and recognized that it exists:

enter image description here

So, I really have not idea what hell is going on. Does anybody had the same issue?


Okay, finally I found the reason of the problem and it's solution.

The FBSDKAppEventNamePurchased event constant is a private constant of Facebook SDK, so we can't use it in our code directly.

We should use:

FBSDKAppEvents.logPurchase(price, currency: currencyCode, parameters: parameters)

instead of:

FBSDKAppEvents.logEvent(FBSDKAppEventNamePurchased, valueToSum: price, parameters: parameters).

I really don't know why Facebook still have the FBSDKAppEventNamePurchased event on their documentation pages, but this way is the way to go.