实现初始化、Limited Login、登出、链接分享、自定义事件、购买事件和事件刷新。 TypeScript 的 FBIOSImpl 与 Android 共用 FBNativeImpl 请求桥;原生由 service/FBWrapper.mm 实现。 AppDelegate 直接持有 FBWrapper 单例,无需在 service.json 再次注册。
Info.plist,然后在 Creator 构建并生成 Xcode 工程。sdk-manager 已弃用,不依赖构建面板配置。
FacebookAppID、FacebookClientToken 已沿用 Android 当前配置;FacebookAutoLogAppEventsEnabled 为 false,与 Android 一致。
修改 App ID 时,必须同时更新 CFBundleURLTypes 中的 fb<AppID>。保留 LSApplicationQueriesSchemes 中的 fbapi 和 fb-messenger-share-api。安装 CocoaPods 后,在本目录执行(替换为生成工程的实际绝对路径):
COCOS_IOS_PROJECT="/absolute/path/game_2c.xcodeproj" pod install
若 target 改名,额外设置 COCOS_IOS_TARGET="实际 target 名"。
SDK 固定为 18.1.1(CoreKit/LoginKit/ShareKit),最低 iOS 12。
game_2c.xcworkspace(名称由 Podfile 的 workspace 指定),设置签名,在 iPhone 上运行。
Creator 重新生成 Xcode 工程后,重新执行 pod install;不要只打开 xcodeproj。当前 Windows 环境未进行 Xcode 编译、CocoaPods 安装或真机验证。
FBWrapper.mm 需要同时导入 CoreKit、LoginKit、ShareKit 的普通头文件和对应的 模块名-Swift.h。
在这些 Facebook 头文件之前导入 SafariServices/SafariServices.h 和 AuthenticationServices/AuthenticationServices.h,
以提供 SFSafariViewControllerDelegate 和 ASWebAuthenticationPresentationContextProviding 的完整协议声明;不要修改 Pods 中生成的头文件。
SDK 中 Swift 实现的登录类、分享协议通过这些生成头文件暴露给 Objective-C++。
若出现 Unknown type name FBSDKLoginManager 或找不到 FBSDKSharingDelegate,先确认这些导入已同步到 Mac。
仅修改 .mm 导入后无需重新安装 Pods;在 Xcode 执行 Product → Clean Build Folder 后重新 Build。
若报的是 -Swift.h file not found,则检查 Pods 安装、应用 target 和 workspace 是否匹配。
Creator 3.8.8 的 addScriptEventListener:listener: 使用 MRC,保存 listener 后会调用 [listener release]。
FBWrapper 的注册入口使用不捕获 self 或局部变量的全局 Block,避免临时 Block 的生命周期与引擎所有权处理不匹配。
不要将该入口改回捕获 self 的匿名 Block;在回调内通过 [FBWrapper shared] 获取实例。
同步 FBWrapper.mm 后重新编译,在真机验证初始化、登录和事件调用。此修复无需修改 Creator 安装目录中的引擎源码。
默认使用 Limited Login,不主动请求 ATT,不开启广告追踪。
成功时 status === 'connected',返回 authenticationToken(JWT)、nonce、tokenType: 'authentication';accessToken 为空。
服务端需要验证 Meta JWT 的签名、issuer、audience(App ID)、有效期和 nonce,并做防重放处理。
不能把 JWT 直接交给现有只接受 Graph API Access Token 的接口;业务登录接口需支持此类令牌后才能完成服务器登录。
当前没有修改业务登录接口或 TrackEvents.ts。
依赖来源:https://github.com/facebook/facebook-ios-sdk/tree/v18.1.1