今天,我们将发布 Facebook SDK 13.0 版本以及 Facebook 开放平台 SDK 的其他更新。本博文将概述这些更新项目,以及开发者应根据需要采取哪些必要措施,避免其应用程序与我们开放平台的集成受到干扰。快速了解 SDK 13.0 版本的部分更新内容:
- 支持图谱 API 13.0 版本:增加对图谱 API 13.0 版本和市场营销 API 13.0 版本的支持。
- Android 版 Facebook SDK 中的嵌入式 Android 广告主编号权限请求:根据 Google Play 服务中的广告主编号政策,Android SDK 13.0 版本现在将默认嵌入 Android 广告主编号权限请求。所有使用 Android 版 Facebook SDK 的开发者都需要在 Google 计划执行政策(即 2022 年 4 月)前采取行动,以避免服务中断。
- 需在 SDK 中嵌入客户端口令:Facebook SDK 13.0 版本发布后,开发者现在需要在 SDK 中嵌入客户端口令。
- 需使用 Java 8 字节码:现在开发者需使用 Java 8 字节码以避免应用出现编译错误。
- 停用公告:SDK 12 系列版本(包括 12.1、12.2 等版本)现处于停用状态。从今天起,开发者需着手向 13.0 版本迁移,以防将已停用的 SDK 用于其应用程序。
请在下方查看有关这些更新的更多详情。
SDK 13.0 版本发布
我们将于今日在 Android 和 iOS 平台上发布开放平台 SDK 13.0 版本。在此版本中,我们将增加对 Facebook 图谱 API 13.0 版本和市场营销 API 13.0 版本的 SDK 支持。此博文将重点介绍与图谱 API 13.0 版本和市场营销 API 13.0 版本相关的其他公告、产品更新和提醒。
其他重点更新内容
以下内容概述了 SDK 13.0 版本的其他更新内容和相关更改:
实现 SDK 现代化:从 Objective-C 转换为 Swift
为实现开放平台 SDK 的现代化,我们正在将 SDK 代码从 Objective-C 转换为 Swift。SDK 13.0 版本包括一些转换工作带来的更改,可能需要开发者采取相应措施。这些更改包括:
- 部分类型已从 Objective-C 转换为 Swift。开发者在使用 GamingServicesKit 和大部分 ShareKit 时可能需要使用模块化导入语句,以避免在 Objective-C 中遇到编译错误。在这种情况下,开发者在使用这些工具包中的符号时,需要在 Objective-C 文件中使用 @import 而不是 #import。开发者还可以参考更新日志,详细了解如何使用模块化导入语句。
- 此外,我们正在尝试进一步减少在 ShareKit 中使用 Objective-C 值类型。从 SDK 13.0 版本发布开始,ShareKit 内容类型将不再实施以下行为:遵守 NSCopying 协议、自定义哈希性和等价性,以及遵守 NSSecureCoding。开发者可以查看更新日志以了解详情。
- 我们还对应用事件报告界面的类型作出了更多更新,因此它们现在已使用正式的应用事件和参数名称。使用 Swift 代码的开发者需要使用 AppEvents.Name 和 AppEvents.ParameterName 实例来分别表示应用事件的名称和参数名称。使用 Objective-C 代码的开发者可以继续使用字符串值来引用报告界面。开发者可以查看更新日志以了解详情。
将游戏组件从 ShareKit 迁移到 GamingServicesKit:
在 SDK 13.0 版本中,我们已将六种公共类型游戏组件从 ShareKit 迁移到 GamingServicesKit,同时这些公共类型也已从 Objective-C 转换为 Swift。六种已迁移的公共类型为:GameRequestActionType、GameRequestContent、GameRequestDialog、GameRequestDialogDelegate、GameRequestFilter 以及 GameRequestURLProvider。
停用及重大更改:
Android 版 Facebook SDK 中的嵌入式 Android 广告主编号权限请求:
Android SDK 13.0 版本现在默认嵌入 Android 广告主编号权限请求。此更改根据 Google Play 服务广告主编号政策而实施。我们要求开发者在 2022 年 4 月之前采取以下行动,以避免其应用服务中断:
- 所有使用 Android SDK 12.1 及更低版本的开发者都应将其升级到 13.0 版本
- 采用应用事件的开发者应采取以下步骤:
- 如果使用 12.1 或更低版本:升级到 13.0 版本
- 如果使用 12.2 或 12.3 版本:在 App Manifest 文件中包含 Android 广告主编号权限请求,以接收有效的广告主编号(点击此处了解详情)
- 如果使用 13.0 版本及更高版本:无需任何操作,相关版本默认包含 Android 广告主编号权限请求
- 未采用应用事件的开发者应采取以下步骤:
- 如果使用 12.3 或更低版本:确保已禁用应用事件标志(点击此处了解详情)
- 如果使用 13.0 及更高版本:确保已禁用应用事件标志(点击此处了解详情),并移除 Android 广告主编号权限请求(点击此处了解详情)
需在 SDK 中嵌入客户端口令:
从开放平台 SDK 13.0 版本发布开始,开发者现在需要在 SDK 中嵌入客户端口令以用于图谱 API 调用。在 SDK 中嵌入客户端口令有助于我们更有效地分析开放平台产生的问题,并提升整个开放平台的性能。自开放平台 SDK 13.0 版本发布后,如遇访问口令或身份验证口令不可用,则可使用客户端口令来处理图谱 API 调用。因此,任何使用 SDK 13.0 及更高版本且未嵌入客户端口令的应用都会在 SDK 初始化时发生异常。开发者可以详细了解如何将应用的客户端口令嵌入到 Android SDK(点击此处)和 iOS SDK(点击此处)中,以避免服务中断。
需使用 Java 8 字节码:
Kotlin 宣布 Kotlin/JVM 编译器将默认生成 Java 8 字节码,为保持一致,我们现在要求使用 Android 版 Facebook SDK 的开发者升级到 Java 8 字节码,以避免在应用编译过程中遇到任何问题。开发者可以点击此处了解更多关于升级到 Java 8 字节码的信息。
停用开放平台 SDK 12.0 系列版本:
SDK 13.0 版本发布后,我们宣布 SDK 12.0 系列版本将处于停用状态,为期 2 年。在此停用期间,我们不会对 SDK 12.0 系列版本上出现的任何问题提供正式维护支持。在 2 年停用期结束后,我们将弃用 SDK 12.0 系列版本且不再运营。鉴于 SDK 12.0 系列版本已停用,我们鼓励开发者尽快迁移到 SDK 13.0 版本,以使用拥有正式维护支持的 SDK,享受更优质的全新体验。
版本停用信息:
以下是已停用的 Facebook 开放平台 SDK 版本以及相关日期:
- 2022 年 2 月 24 日:iOS 和 Android SDK 12 系列版本(已停用)
- 2021 年 10 月 21 日:iOS 和 Android SDK 11 系列版本(已停用)
- 2021 年 6 月 8 日:iOS、Android 和 Unity SDK 9 系列版本(已停用)
- 2021 年 1 月 19 日:iOS、Android 和 Unity SDK 8.2 及更低版本(已停用)
更新日志:
访问更新日志来查看对 SDK 作出的具体更改,并持续关注计划改进的最新动态: