在 iOS 应用中添加应用事件会产生未声明的标识符 'AppEvent'

Adding App Events in iOS app produces undeclared identifier 'AppEvent'

我正在尝试添加 Facebook 应用程序事件,并且我安装了 FacebookSDK。然后我有下一个代码:

import FacebookCore

static func logViewContentEvent(contentType : String, contentData : String, contentId : String, currency : String, price : Double) {
        let params : AppEvent.ParametersDictionary = [
            .contentType : contentType,
            .content : contentData,
            .contentId : contentId,
            .currency : currency
        ]
        let event = AppEvent(name: .viewedContent, parameters: params, valueToSum: price)
        AppEventsLogger.log(event)
    }

但是我从标题中得到了错误。我做错了什么,为什么缺少这种类型?

这是一个 knowed facebook 烦人的问题。

FBSDK 5.0.1 之前,您的代码运行良好。之后,您可以更改代码,例如:

static func logViewContentEvent(contentType : String, contentData : String, contentId : String, currency : String, price : Double) {
        let params =  [
            "contentType": contentType,
            "content" : contentData,
            "contentID" : contentId,
            "currency" : currency
        ]
        AppEvents.logEvent(AppEvents.Name(rawValue: "viewedContent"), valueToSum: price, parameters: params)
    }

在文件顶部去掉 FacebookCore 仅使用

         import FBSDKCoreKit
         // implemented  FBSDKCoreKit (5.8.0)
         let event =  "custom event"
         AppEvents.logEvent(AppEvents.Name.init(rawValue: event))

或带参数

    let a:[String: String] = ["key": "value"]
    AppEvents.logEvent(AppEvents.Name.init(rawValue: event), parameters: a )

我有我的这些设置:

  • 通过具有 use_frameworks! 配置的 cocoapod 安装

pod 'FBSDKCoreKit', '~> 5.11.1'

  • 由于我的项目同时支持 ObjC 和 Swift 我在桥接文件中导入了 <FBSDKCoreKit/FBSDKCoreKit.h>
static func logContent(id: String, type: String, valueToSum: Double) {
        AppEvents.logEvent(.viewedContent,
                           valueToSum: valueToSum,
                           parameters: [contentType: type,
                                        contentID: id,
                                        currency: "USD"])
    }