> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlayFab 2017 版本发布说明

> PlayFab Services SDK 2017 年发布说明,包括当年发布的 SDK 版本升级、新增 API、弃用和修复。

## 171204

日期:2017 年 12 月 4 日

### Unreal SDK 更改 (Cpp 和 Bp)

* 两个 SDK 均更新到 **Unreal 4.18.1**。
* 较旧版本仍然可用,但需要取消 \_.build.cs 文件中 `#defines` 的注释。

## 171127

日期:2017 年 11 月 27 日

### API 更改

* 允许 "Limited Edition" 物品的库存功能现已从 beta 阶段发布。

* 此功能允许你定义游戏中特定 `itemId` 只有固定数量可用。

* 从使用 "[ProfileModel](xref:titleid.playfabapi.com.client.accountmanagement.getplayerprofile#playerprofilemodel)" 的 API 方法中删除了虚拟货币属性,因为该信息从不提供或不正确。它将... 有一天会返回。

### 新 API 方法

* admin.[CheckLimitedEditionItemAvailability](xref:titleid.playfabapi.com.admin.playeritemmanagement.checklimitededitionitemavailability)
* admin.[IncrementLimitedEditionItemAvailability](xref:titleid.playfabapi.com.admin.playeritemmanagement.incrementlimitededitionitemavailability)
* client.[GetPaymentToken](xref:titleid.playfabapi.com.client.playeritemmanagement.getpaymenttoken)
  * 用于 [XSolla 特定支付处理](https://devdocs.xbox.com/zh-CN/services/playfab/economy-monetization/economy/tutorials/non-receipt-payment-processing.md)
* client.[ReportDeviceInfo](xref:titleid.playfabapi.com.client.analytics.reportdeviceinfo)
  * 此 API 方法不应直接调用。目前是 Unity 和 Lumberyard SDK 的内置功能。可通过 [API Policy](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/api-access-policy.md) 禁用。此外,我们即将添加另一个选项,可在 Game Manager 的游戏标题设置页面中禁用它。

### 更新的 API 方法错误代码

* client.[AddOrUpdateContactEmail](xref:titleid.playfabapi.com.client.accountmanagement.addorupdatecontactemail)
* client.[GetLeaderboardAroundPlayer](xref:titleid.playfabapi.com.client.playerdatamanagement.getleaderboardaroundplayer)
* client.[LoginWithAndroidDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithandroiddeviceid)
* client.[LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid)
* client.[LoginWithIOSDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithiosdeviceid)

### SDK 相关更新

* [UnitySdk](https://github.com/PlayFab/UnitySDK):现在使用 Unity 2017.2.0f3 构建所有已发布的 unity package 文件。
* 为了测试,我们内部为每个主.次版本更新到最新版本,从 Unity 4.7.2f1 到 2017.1.2f1。
* Unity Example Test Game Server:向 `HttpHelper` 应用了修复,以修复 `SignalR` 请求上的 SSL 验证。
* [ActionScriptSDK](https://github.com/PlayFab/ActionScriptSDK):示例中的 AirSdk 更新到 v27。
* [Cocos2d-xSDK](https://github.com/PlayFab/Cocos2d-xSDK):尽管发布了 Cocos 3.16,我们仍以 3.15.1 为目标(敬请期待)。
* SdkTestingCloudScript 和 [NodeSDK](https://github.com/PlayFab/NodeSDK):更新了示例 VS 项目以支持 VS/msbuild 2017。
* WindowsSDK:这是最后一个针对 Visual Studio 2013 的 NuGet 包构建:
  * [WindowsSdk VS 2013 NuGet 包](https://www.NuGet.org/packages/com.playfab.windowssdk.v120/1.19.171127)
  * 我们正在更新自动构建机,不会在新机器上安装 VS 2013。
  * [较新的 NuGet 包](https://www.NuGet.org/packages/com.playfab.windowssdk.v140/)将继续在 VS 2015 和 2017 上工作。

## 171106

日期:2017 年 11 月 6 日

### 新 API 方法

* admin.[GetPlayerProfile](xref:titleid.playfabapi.com.admin.accountmanagement.getplayerprofile)
* server.[SendEmailFromTemplate](xref:titleid.playfabapi.com.server.accountmanagement.sendemailfromtemplate)

### 更新的 PlayStream 事件

* [sent\_email](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/TitleCommunications/sent-email.md) 获得新字段:Body 和 Subject。

### 所有 SDK

* **小 SDK 破坏性更改:** `ForgetClientCredentials()` 重命名为 `ForgetAllCredentials()`。
* 这是 "即将推出" 功能的一部分,在完成时将公布。

## 171102

日期:2017 年 11 月 2 日

### 新 PlayFab 功能

* 使用模板向玩家发送电子邮件。

### 新 API 方法

* admin.[ResetPassword](xref:titleid.playfabapi.com.admin.accountmanagement.resetpassword)
* admin.[GetPlayerIdFromAuthToken](xref:titleid.playfabapi.com.admin.accountmanagement.getplayeridfromauthtoken)
* client.[AddOrUpdateContactEmail](xref:titleid.playfabapi.com.client.accountmanagement.addorupdatecontactemail)
* client.[RemoveContactEmail](xref:titleid.playfabapi.com.client.accountmanagement.removecontactemail)
* server.[SendCustomAccountRecoveryEmail](xref:titleid.playfabapi.com.server.accountmanagement.sendcustomaccountrecoveryemail)

### 文档更新

* [每个 PlayFab API 调用相关的新错误代码列表](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/global-api-method-error-codes.md)
* 以下项目的错误代码已更新:client.[LoginWithGoogleAccount](xref:titleid.playfabapi.com.client.authentication.loginwithgoogleaccount)、client.[UpdatePlayerStatistics](xref:titleid.playfabapi.com.client.playerdatamanagement.updateplayerstatistics)、server.[ConsumeItem](xref:titleid.playfabapi.com.server.playeritemmanagement.consumeitem)

### 新 PlayStream 事件

* [auth\_token\_validated](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/auth-token-validated.md)
* [player\_updated\_contact\_email](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/player-updated-contact-email.md)
* [sent\_email](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/TitleCommunications/sent-email.md)

### Unreal 相关更新

* 我们的自动构建工具未能发布构建号 171016 和 171026 的 Unreal SDK。我们解决了自动构建工具的问题,事后发布了版本 171026,发布恢复正常

### Unity 相关更改

* **小破坏性更改:** 将 `ForgetClientCredentials` 重命名为 `ForgetAllCredentials`。
* 这是即将推出的新功能的一部分。我们将在接下来的几个版本中将所有 SDK 中的 `ForgetClientCredentials` 重命名为 `ForgetAllCredentials`。

## 171026

日期:2017 年 10 月 26 日

### API 文档更改

* 更新 API 方法的错误代码。

* 从每个 API 方法列表中删除了许多适用于所有 API 方法的通用错误代码。新页面描述了通用错误代码。

* **删除的通用代码:**
  * InvalidParams
  * OverLimit
  * DataUpdateRateExceeded
  * AccountBanned

* 这些错误(以及其他将在单独文档中发布的错误)可以从任何 API 方法返回,应适当处理。

* 向数十个 API 方法添加了新错误代码,并删除了一些错误代码。方法特定错误返回的错误代码列表现在应更加准确。这仍是一个持续的过程,因此还有更多更新。

* 涉及虚拟货币的几个 API 方法可以将余额降至零以下。我们已相应地进行了标记。

### API 更改

* **新 API 方法:**
  * admin.[DeleteTitle](xref:titleid.playfabapi.com.admin.accountmanagement.deletetitle)
  * 托管游戏服务器同时支持 **IPv4** 和 **IPv6**。
  * 自定义游戏服务器现在支持 **IPV6**。所有新启动的游戏服务器实例都被分配 **IPV4** 和 **IPV6** 地址,这些地址显示在 Game Manager **Servers** 选项卡中,并由匹配 API 返回。客户端可以连接到已分配服务器的 **IPV4** 或 **IPV6** 地址。
  * 所有返回服务器地址的 API 方法现在都返回两个选项:client.\[StartGame]\(xref:titleid.playfabapi.com.client.matchmaking).\[StartGameResult]\(xref:titleid.playfabapi.com.client.matchmaking)

### Game Manager 更改

* 你现在可以使用新的 Admin/DeleteTitle API 或在 Game Manager studios 页面上删除标题,如下图所示。

  ![DelTitleGameManager](https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/release-notes/images/171026-DelTitleGameManager.png?fit=max\&auto=format\&n=N3T1ucKV7zIMBudj\&q=85\&s=e05b5b1b05161e4730923e705349b890)

## 171016

日期:2017 年 10 月 16 日

### API 更改

* 向 server.[SendPushNotification](xref:titleid.playfabapi.com.server.accountmanagement.sendpushnotification).[SendPushNotificationRequest](xref:titleid.playfabapi.com.server.accountmanagement.sendpushnotification#sendpushnotificationrequest).[PushNotificationPackage](xref:titleid.playfabapi.com.server.accountmanagement.sendpushnotification#pushnotificationpackage) 添加了 iOS Badge 参数。
* 阐明了各种参数的设备特定性质。

### 新 PlayStream 事件

* [player\_started\_purchase](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/Player/player-started-purchase.md)
* [player\_paid\_for\_purchase](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/Player/player-paid-for-purchase.md)

### JavaScriptSDK 相关更改

* [JavaScriptSDK](https://github.com/PlayFab/JavaScriptSDK)
  * 我们的 SDK 现在与 [Phaser.io](https://phaser.io/) 集成。

### LuaSDK 相关更改

* [LuaSDK](https://github.com/PlayFab/LuaSDK)
  * 修复了我们的 Lua 发布管道,LuaSDK 再次正常更新。

### UnitySdk 相关更改

* [UnitySdk](https://github.com/PlayFab/UnitySDK)
  * 我们在我们这一方处理了 [Unity 中的回归问题](https://issuetracker.unity3d.com/issues/unitywebrequest-getresponseheaders-method-returns-null-on-android-devices),它应不再影响 PlayFab 客户。

~~**UnrealCppSdk 相关更改:**~~(已更新:此 SDK 已弃用。有关新的 unreal SDK,请参阅 [UnrealMarketplaceSDK](https://www.unrealengine.com/marketplace/playfab-SDK))

* ~~我们的一位客户为我们的 SDK 制作了一个插件,它集成了 Unreal OnlineSubsystem 和 PlayFab SDK~~
* ~~你可以在[此处](https://gitlab.com/mtuska/OnlineSubsystemPlayFab)查看它。~~

### Unicorn Battle 示例

* 删除了 PlayFab 自定义推送插件并更新到 FCM 推送消息。

## 170925

日期:2017 年 9 月 5 日

### API 更改

* 删除了几个从未公开的 beta API。这不应影响任何当前客户或已上线的游戏标题。
* 我们绕过了 CloudScript 引擎中的默认语言级标头检查。这意味着几个以前被拒绝的 CloudScript http.request() 标头现在应工作。

### Global Push Notification 更新

* 有关推送通知改进的详细信息,请参阅[我们的博客](https://blog.playfab.com/blog/push-sep-17)

### 新 PlayStream 事件

* [player\_device\_info](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/player-device-info.md)
* 使用最新 UnitySDK 的游戏现在可以查看有关其客户的一些基本分析数据。SnowFlake 是查看和分析此信息的理想选择,但也可在 PlayStream Event History 中查看。
* player\_updated\_membership

### JavaScriptSDK 相关更改

* [JavaScriptSDK](https://github.com/PlayFab/JavaScriptSDK)
  * 向 JavaScriptSDK 添加了其他 SDK 中已存在的几个小功能:
  * 你现在可以将额外的标头注入请求中(消除了此 SDK 使用双重加密登录的阻碍之一)。
  * 添加了新函数:`PlayFabClientSDK.ForgetClientCredentials()`
  * 这是一个便利函数,用于在关闭或注销后重置客户端。
  * `PlayFab.GenerateErrorReport()`
  * 这是一个便利函数,可将失败的 PlayFab 调用的错误结果转换为对调用失败方式的完整描述。
* 向 PlayFab API 请求添加了可选的数据中继:
  * `result.customData`
    * 这是你可以附加到请求的任何上下文对象,可以为结果提供上下文。例如,你可以为 **UpdatePlayerStatistics** 调用提供本地客户端玩家对象作为 `customData`,并在远程调用成功后为该玩家设置更新的统计信息。
  * `result.request`
    * API 调用的请求现在被转发到结果,可以为结果提供上下文。例如,当你调用 `UpdatePlayerStatistics` 时,可以在更新本地玩家对象时从请求中读取更新的统计数据。

### UnitySDK 相关更改

* [UnitySDK](https://github.com/PlayFab/UnitySDK)
  * 新的实验性功能:此版本的 PlayFab UnitySDK 现在可选择让你查看玩家的设备信息。你可以查看的示例信息:内存、分辨率、user-agent、设备类型、OS 版本等。

~~**UnrealCppSdk 相关更改:**~~(已更新:此 SDK 已弃用。有关新的 unreal SDK,请参阅 [UnrealMarketplaceSDK](https://www.unrealengine.com/marketplace/playfab-SDK))

* ~~更新到 Unreal 4.17~~
* ~~拆分为三个独立的插件,每个插件具有不同的功能~~
* ~~整体上有重大升级~~

## 170828

日期:2017 年 8 月 28 日

### 客户端 API 更改

* ~~client.\[GetCurrentGames].\[result].Games\[i].GameServerState 已弃用,并替换为 \[GameServerStateEnum]~~。
  ~~- GameServerState 被序列化为整数,这是一个错误。新字段是正确的枚举字符串。~~ (已更新:此功能已弃用。请参阅 [Servers](https://devdocs.xbox.com/zh-CN/services/playfab/multiplayer/servers.md))

### 其他 API 更改

* 弃用了 Admin 和 Server API 上的以下 API 方法。
  * [GetActionsOnPlayersInSegmentTaskInstance](xref:titleid.playfabapi.com.admin.scheduledtask.getactionsonplayersinsegmenttaskinstance) - 这被错误地标记为已弃用,但那是一个错误,已恢复。
* [SendPushNotification](xref:titleid.playfabapi.com.server.accountmanagement.sendpushnotification) 现在可以指定 [TargetPlatforms](xref:titleid.playfabapi.com.server.accountmanagement.sendpushnotification#sendpushnotificationrequest)
* 添加了一些对 [SendPushNotificationRequest](xref:titleid.playfabapi.com.server.accountmanagement.sendpushnotification#sendpushnotificationrequest) 中哪些参数在哪些平台上工作的阐明(不推荐使用目标平台不支持的参数)。
* 向 Shared Group 文档添加了一些关于[共享组](xref:titleid.playfabapi.com.client.sharedgroupdata.createsharedgroup)[限制](https://devdocs.xbox.com/zh-CN/services/playfab/community/associations/groups/using-shared-group-data.md)的信息(特别是它们不能用于诸如公会之类的用途)。
* [Player Profiles](xref:titleid.playfabapi.com.client.accountmanagement.getplayerprofile#playerprofilemodel) 现在可以存储玩家[联系电子邮件地址](xref:titleid.playfabapi.com.client.accountmanagement.getplayerprofile#contactemailinfomodel)。

### 新 PlayStream 事件

* [entity\_created](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/entity-created.md)
* [entity\_logged\_in](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/entity-logged-in.md)

## 170814

日期:2017 年 8 月 14 日

### API 更新

* server.[GetFriendsList](xref:titleid.playfabapi.com.server.friendlistmanagement.getfriendslist) 和 client.[GetFriendsList](xref:titleid.playfabapi.com.client.friendlistmanagement.getfriendslist) API 方法现在为每位朋友返回一个 [PlayerProfile](xref:titleid.playfabapi.com.client.friendlistmanagement.getfriendslist#playerprofilemodel)。

### CSharpSdk 相关更新

* SDK 现在包含一个名为 [NewtonSoftJsonWrapper.cs](https://github.com/PlayFab/CSharpSDK/blob/master/PlayFabSDK/source/Json/NewtonsoftWrapper.cs) 的文件,可让你将我们包含的 SimpleJson 序列化器替换为 NewtonSoft NuGet 包。
* 该文件包含如何使用它的说明。

## 170807

日期:2017 年 8 月 7 日

### 新 API 方法

* admin.[DeletePlayer](xref:titleid.playfabapi.com.admin.accountmanagement.deleteplayer)

### 弃用的 API 方法

* 这些 API 方法从未如预期般全面且完整地工作。为了清理这些内容,我们重新开始,并在上一节中构建了新的 [DeletePlayer](xref:titleid.playfabapi.com.admin.accountmanagement.deleteplayer) API,并弃用以下方法:
* `admin.ResetUsers`
* `admin.DeleteUsers`

### API 更新

* `PlayerProfile`(在 [Admin](xref:titleid.playfabapi.com.admin.accountmanagement.getplayerprofile#playerprofilemodel)/[Server](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile#playerprofilemodel)/[PlayStream](xref:titleid.playfabapi.com.client.accountmanagement.getplayerprofile#playerprofilemodel) 中)包含一个新字段 `ContactEmailAddresses`,其中包含你可能已保存的关于玩家的任何电子邮件地址信息。

### PlayStream 事件

* 新事件:[auth\_token\_validated](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/auth-token-validated.md)
* 新事件:[player\_removed\_title](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/player-removed-title.md)
* 新事件:[player\_updated\_contact\_email](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/player-updated-contact-email.md)
* 新事件:[player\_verified\_contact\_email](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/player-verified-contact-email.md)
* 新事件:[sent\_email](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/TitleCommunications/sent-email.md)(仍在 beta 阶段,但事件已经公开)
* 事件中的新字段:[player\_realmoney\_purchase](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/Player/player-realmoney-purchase.md).TransactionId

~~**LumberyardSdk 更改:**~~

* ~~**升级警告:** 此 SDK 不再与之前版本的 Lumberyard 兼容。~~
* ~~此版本的 PlayFab LumberyardSdk 不再适用于 Lumberyard 版本 1.3。它已升级,现在针对 Lumberyard 1.9。我们可能很快会针对 1.10,但同样与 1.9 或更早版本不向后兼容。有关详细信息,请参阅[我们的博客](https://blog.playfab.com/blog/cpp-SDK-updates)。~~

~~**UnrealCppSdk:**~~(**已更新**:此 SDK 已弃用。有关新的 unreal SDK,请参阅 [UnrealMarketplaceSDK](https://www.unrealengine.com/marketplace/playfab-SDK))。

~~**Unreal SDK:**~~(**已更新**:此 SDK 已弃用。有关新的 unreal SDK,请参阅 [UnrealMarketplaceSDK](https://www.unrealengine.com/marketplace/playfab-SDK))

* ~~PlayFab UnrealBlueprintSdk 现在重命名为 "Unreal SDK"~~
* ~~Unreal SDK 已更新到 4.16,并进行了一些小修复~~
* ~~我们也不再支持较旧版本的 Unreal,这些版本需要较旧版本的 Visual Studio~~
* ~~我们现在支持 4.14 到 4.16~~
* ~~你的项目可能会继续在较旧版本的 Visual Studio 上工作,但我们只能支持和测试 Visual Studio 2015 及更高版本~~
* ~~阅读[我们的博客](https://blog.playfab.com/blog/visual-studio-2013-deprecation-notice)以获取更多信息~~

### Unity Editor Extensions

* 修复了下载和上传 CloudScript 修订版本的问题。
* 修复了系统语言使用非 ASCII 字母的用户的问题。

## 170710

日期:2017 年 7 月 10 日

### API 更改

* 从 beta 中发布了 Enterprise 功能,支持双重加密登录,现已上线。
* **新 API 方法:**
  * admin.[CreatePlayerSharedSecret](xref:titleid.playfabapi.com.admin.authentication.createplayersharedsecret)
  * admin.[DeletePlayerSharedSecret](xref:titleid.playfabapi.com.admin.authentication.deleteplayersharedsecret)
  * admin.[GetPlayerSharedSecrets](xref:titleid.playfabapi.com.admin.authentication.getplayersharedsecrets)
  * admin.[SetPlayerSecret](xref:titleid.playfabapi.com.admin.authentication.setplayersecret)
  * admin.[UpdatePlayerSharedSecret](xref:titleid.playfabapi.com.admin.authentication.updateplayersharedsecret)
  * client.[GetTitlePublicKey](xref:titleid.playfabapi.com.client.authentication.gettitlepublickey)
  * client.[SetPlayerSecret](xref:titleid.playfabapi.com.client.authentication.setplayersecret)
  * server.[SetPlayerSecret](xref:titleid.playfabapi.com.server.authentication.setplayersecret)
* server.\[RegisterGameRequest]\(xref:titleid.playfabapi.com.server.matchmaking) 有一个新属性:LobbyId,它将允许你尝试重新注册现有游戏
* server.[SendPushNotificationRequest](xref:titleid.playfabapi.com.server.accountmanagement.sendpushnotification#sendpushnotificationrequest) 现在接受一个新属性:Package,它定义了所有高级 Android 推送功能。

### SDK 破坏性更改

* admin.[SetupPushNotificationRequest](xref:titleid.playfabapi.com.admin.title-widedatamanagement.setuppushnotification#setuppushnotificationrequest).Platform 现在定义为枚举而不是字符串。这不是对 API 的破坏性更改(因为枚举以字符串形式传输),但要求某些用户在其代码中将字符串转换为枚举值。

### 所有 SDK 中的更改

* 小 SDK 破坏性更改:大多数 SDK 在多个请求中丢失了名为 UseSpecificVersion 的可选字段,该字段是将相邻的 Version 字段定义为 null 的另一种方法。并非所有语言都能在请求中将整数定义为 null,而此字段仅在相关 SDK(特别是 Unreal)中才有用。如果你使用此字段,只需删除它,并在适当时将相邻的 Version 字段设置为 null。

### Unity EditorExtensions 更新

* 更新了标志面板。
* 现在可以切换 `ENABLE/DISABLE_IDFA` 标志。
* 显示非 PlayFab 标志,并允许你删除它们(请谨慎使用,不要删除你需要的标志)。

### SDK 依赖项更新

* [UnitySDK](https://github.com/PlayFab/UnitySDK) 使用 Unity2017.1.0f1 构建、打包和测试。
  * 仅有琐碎的、非破坏性更改。
* [ActionScriptSDK](https://github.com/PlayFab/ActionScriptSDK) 使用 AirSDK v26 测试。
  * SDK 未更改,示例已更新以针对 v26。
* [Cocos2d-xSDK](https://github.com/PlayFab/Cocos2d-xSDK) 使用 Cocos 3.15.1 构建和测试。
* Cocos 3.14->3.15 包含破坏我们示例的更改,这反过来意味着必须更新示例。示例仍然适用于 3.13 到 3.15,但示例可能不适用于未更改的较旧版本 Cocos SDK,应适用于大多数最新的 3.X Cocos 版本。

## 170612

日期:2017 年 6 月 12 日

### 文档更改

* 为清晰起见,对数十种 API 方法进行了许多小修订
* 将几个仅包含单个 API 方法的文档分组合并为一个名为 "Platform Specific Methods" 的组。
* 将 "Matchmaking APIs" 组重命名为 "Matchmaking" 以与其他组保持一致。
* 许多长度受限的字符串字段现在描述了允许的范围。

### 所有 SDK 中的更改

* 更新并修复了所有 SDK READMEs 中的许多损坏链接。

### UnitySDK 相关更改

* [UnitySDK](https://github.com/PlayFab/UnitySDK)
  * 我们现在支持多个版本的 Android API 和 Google Play Services。在[此处](https://github.com/PlayFab/UnitySDK/tree/master/Packages)阅读更多详细信息。
  * 这总结了目前对 Unity + Android 推送插件的计划更改。如果你有更多请求,请在[此处](https://community.playfab.com/questions/10840/android-plugin-upgrade-discussion.html)告知我们。

## 170530

日期:2017 年 5 月 30 日

### API 更改

* **破坏性更改:** 在 server.[ReportPlayer](xref:titleid.playfabapi.com.server.playeritemmanagement.reportplayer) 中,我们立即删除了 [ReportPlayerServerRequest](xref:titleid.playfabapi.com.server.playeritemmanagement.reportplayer#reportplayerserverrequest) 中的 `titleId` 字段(不仅仅是弃用)。所有报告现在都转到自己的游戏标题,并且不能报告到其他游戏标题。
  * 这必须是破坏性更改,因为否则它是轻微的跨游戏标题漏洞。如果你需要此更改方面的帮助,请[联系我们](https://community.playfab.com/questions/ask.html)。
* 在 client.[ReportPlayer](xref:titleid.playfabapi.com.client.accountmanagement.reportplayer) 和 server.[ReportPlayer](xref:titleid.playfabapi.com.server.playeritemmanagement.reportplayer) 中,我们在两种情况下都弃用了 result.Updated。它始终为 true,如果玩家超出报告限制,API 调用将返回错误。我们将此错误条件更改为 OverLimit 以与其他限制匹配。
* 所有[登录方法](xref:titleid.playfabapi.com.client.authentication)现在可以根据请求返回[玩家配置文件对象](xref:titleid.playfabapi.com.client.authentication.loginwithandroiddeviceid#playerprofilemodel),其中包含之前仅可用于排行榜结果的信息。

### 新 API 方法

* client.[GetPlayerProfile](xref:titleid.playfabapi.com.client.accountmanagement.getplayerprofile) 和 server.[GetPlayerProfile](xref:titleid.playfabapi.com.server.accountmanagement.getplayerprofile)
  * 返回之前仅可用于排行榜结果的信息。

### 文档

* 小更新,几个示例不再包含有关已弃用字段的信息。
* 定义了 [ExecuteCloudScript](xref:titleid.playfabapi.com.client.server-sidecloudscript.executecloudscript) 返回值和日志大小限制。

### 新 PlayStream 事件

* gameserverhost\_started
* gameserverhost\_stopped
* [player\_set\_profile\_property](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/Player/player-set-profile-property.md)

### UnitySDK 相关更改

* [UnitySDK](https://github.com/PlayFab/UnitySDK)
  * 全面改进了 Android 推送插件。
  * [博客文章](https://blog.playfab.com/blog/push-upgrade-5-22)
  * [新/更新的指南](https://devdocs.xbox.com/zh-CN/services/playfab/live-service-management/game-configuration/title-communications/push-notifications/push-notifications-for-android.md)

### CSharpSDK 相关更改

* [CSharpSDK](https://github.com/PlayFab/CSharpSDK)
  * 现在可以指定注入到 API 请求中的额外标头。
  * 这是仅企业版功能,专门用于双重加密登录请求。

## 170508

日期:2017 年 5 月 8 日

### API 更改

* **破坏性更改:**
  * 如果调用的返回值过大,[ExecuteCloudScript](xref:titleid.playfabapi.com.client.server-sidecloudscript.executecloudscript) 不会序列化它。
  * 如果调用的日志过大,[ExecuteCloudScript](xref:titleid.playfabapi.com.client.server-sidecloudscript.executecloudscript) 不会序列化日志。
* 在任何一种情况下,调用仍返回 200/成功,但 FunctionResult 和/或 Logs 属性为 null。

### PlayStream 事件更改

* [player\_vc\_item\_purchased](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/Player/player-vc-item-purchased.md) 和 [character\_vc\_item\_purchased](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/Character/character-vc-item-purchased.md) 现在包含 StoreId 参数,指示使用哪个商店进行购买。
* **新事件:**
  * [title\_profile\_view\_constraints\_changed](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/title-profile-view-constraints-changed.md)

### CSharpSDK 更新

* [CSharpSDK](https://github.com/PlayFab/CSharpSDK)
  * 删除了 [CSharpSDK](https://github.com/PlayFab/CSharpSDK) 中一些未使用的源文件。
  * 这不应影响任何现有项目或 NuGet 包,因为 Visual Studio Solution 没有引用这些文件。

### Postman 集合更新

* 几个常见请求参数现在使用环境变量。
* 具体来说是 TitleId=\{\{TitleId}}、PlayFabId=\{\{PlayFabId}}、CharacterId=\{\{CharacterId}} 和 CatalogVersion=\{\{PrimaryCatalogName}}

## 170424

日期:2017 年 4 月 24 日

### SDK 热修复版本

* **[JavaSDK](https://github.com/PlayFab/JavaSDK) 更新:**
  * 我们现在为 SDK 发布 Jar 文件,一个用于代码,一个用于 Java 文档,你可以将其导入到你的 Java 项目中,而不是复制粘贴代码。感谢 Will Iverson  帮助我们提高 [JavaSDK](https://github.com/PlayFab/JavaSDK) 的可用性
* **UnityEditorExtensions 更新:**
  * 我们解决了一些安装时异常。特别是不再需要在首次安装后重启 Unity。
  * 此外,现在修复了客户端 API 有时会不适当地被禁用的问题。(已编辑)
* ~~**UnrealCppSdk 更新:**~~(已更新:此 SDK 已弃用。有关新的 unreal SDK,请参阅 [UnrealMarketplaceSDK](https://www.unrealengine.com/marketplace/playfab-SDK))
* ~~现在可从插件接口获取 titleId~~

## 170411

日期:2017 年 4 月 11 日

### API 更改

* 新的 Enterprise 功能:更多登录加密
* 你可以使用 Policy API 方法强制执行登录调用可以要求第二层加密
* 请参阅:[UpdatePolicy](xref:titleid.playfabapi.com.admin.authentication.updatepolicy),特别是 [UpdatePolicyRequest](xref:titleid.playfabapi.com.admin.authentication.updatepolicy#updatepolicyrequest).[Statements](xref:titleid.playfabapi.com.admin.authentication.updatepolicy#permissionstatement).[ApiConditions](xref:titleid.playfabapi.com.admin.authentication.updatepolicy#apicondition)
* 此功能仍部分处于 beta 阶段,不建议激活它(尚未 - 即将推出!)

### 新 PlayStream 事件

* [player\_receipt\_validation](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/Player/player-receipt-validation.md)

### UnitySDK 相关更改

* 现在可以指定注入到 API 请求中的额外标头(这是上一节中加密登录调用所必需的)。

### UnityEditorExtensions 相关更改

* 修复了 Unity 5.6 的编译问题。

## 170406

日期:2017 年 4 月 6 日

### Unity Android 推送插件热修复

* 修复了 Android 7.0+ 崩溃 bug。
* 修复了 Android 缺少大图标支持(Lollipop+)。
* 修复了 Android 7.0+ 上的小图标支持(现在支持 \_transparent.png)。

## 170403

日期:2017 年 4 月 3 日

### API 更改

* **Client 和 Server 排行榜方法:** 排行榜获取方法(如 client.[GetLeaderboard](xref:titleid.playfabapi.com.client.playerdatamanagement.getleaderboard))之前获得了新的不可为 null 参数 Version 和 UseSpecificVersion。它们不可为 null 的要求是 API 破坏性更改。我们已将这些属性更新为完全可选。
* **客户端 API:** [GetPurchaseResult](xref:titleid.playfabapi.com.client.playeritemmanagement.getpurchase#getpurchaseresult) 的 Items 字段已弃用:结果的这一部分通常不正确或不完整。它最终将被一个功能完整的参数替换。

### 新 PlayStream 事件

* `player_display_name_filtered`

~~**Unreal 相关更改:**~~(**已更新**:此 SDK 已弃用。有关新的 Unreal SDK,请参阅 [UnrealMarketplaceSDK](https://www.unrealengine.com/marketplace/playfab-SDK))

* ~~UnrealCppSdk:发布构建时 PlayFab 设置(如 TitleId)丢失的问题已修复。
  两个 SDK 都已测试并验证在 Unreal 4.15 上工作~~

### JavaSDK 相关更改

* [JavaSDK](https://github.com/PlayFab/JavaSDK)
  * 重构了 [JavaSDK](https://github.com/PlayFab/JavaSDK) 文件夹结构和测试。
  * 仓库的内部文件夹结构已有所改变,以适应 Maven 最佳实践。
  * 依赖项现在由 Maven 控制,不再包含在 SDK 中。
  * 将我们的内部自动化测试转换为 Maven 命令行。
  * 我们的 SDK 在 Maven Central 上不可用,因为这项工作已经停滞。目前没有完成的预计时间。

### UnitySDK 相关更改

* [UnitySDK](https://github.com/PlayFab/UnitySDK)
  * 用于测试和构建资产包的内部 Unity 版本更新到 5.6.0。我们的 Unity SDK 仍与所有 Unity 4.7 到 5.6 版本兼容。
  * 修复了 Unity 5.6 中 `UnityEditorExtensions` 的编译问题。

## 170223

日期:2017 年 2 月 22 日

### API 更改

* PlayFab 排行榜现在为每位玩家存储头像 URL。这可用于引用排行榜条目的玩家图像。
* 所有排行榜 API 现在都可以获取排行榜的特定版本。这适用于设置为使用重置排行榜的游戏标题。
* 排行榜条目现在包含 [PlayerProfile](xref:titleid.playfabapi.com.client.accountmanagement.getplayerprofile#playerprofilemodel),可用于显示更详细的排行榜,而无需额外的 API 调用
* PlayFab 现在可以使用 Windows Hello 对客户端进行身份验证,并验证 Windows 商店收据

### 新 API

```
- [Client/UpdateAvatarUrl](xref:titleid.playfabapi.com.client.accountmanagement.updateavatarurl)
- `Client/RegisterWithWindowsHello`<!-- [Client/RegisterWithWindowsHello](xref:titleid.playfabapi.com.client.authentication.registerwithwindowshello) -->
- `Client/GetWindowsHelloChallenge`<!-- [Client/GetWindowsHelloChallenge](xref:titleid.playfabapi.com.client.authentication.getwindowshellochallenge) -->
- `Client/LoginWithWindowsHello`<!-- [Client/LoginWithWindowsHello](xref:titleid.playfabapi.com.client.authentication.loginwithwindowshello) -->
- `Client/LinkWindowsHello`<!-- [Client/LinkWindowsHello](xref:titleid.playfabapi.com.client.accountmanagement.linkwindowshello) -->
- `Client/UnlinkWindowsHello`<!-- [Client/UnlinkWindowsHello](xref:titleid.playfabapi.com.client.accountmanagement.unlinkwindowshello) -->
- [Client/ValidateWindowsStoreReceipt](xref:titleid.playfabapi.com.client.platformspecificmethods.validatewindowsstorereceipt)
- [Server/SetFriendTags](xref:titleid.playfabapi.com.server.friendlistmanagement.setfriendtags)
```

### 新 PlayStream 事件

* [player\_changed\_avatar](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/PlayerIdentity/player-changed-avatar.md)

### WindowsSDK 相关更改

* 向 JSON 序列化器添加了一些缺失的 null 检查。

### 所有 SDK

* 对 [testTitleData](https://github.com/PlayFab/SDKGenerator/blob/master/JenkinsConsoleUtility/testTitleData.md) 格式进行了小的添加。这只适用于 SDK 附带的 Example-Test 项目。

## 170130

日期:2017 年 1 月 29 日

### 破坏性更改

* 今天的主要版本更改了 [JavaScriptSDK](https://github.com/PlayFab/JavaScriptSDK) 和 [NodeSDK](https://github.com/PlayFab/NodeSDK) 的文件夹结构。升级时,这可能导致你的项目出现一些连接损坏。(文件名和文件内容没有更改。现在存在以前不存在的新 **TypeScript** 文件。)

### API 更改

* 向 CDN API 添加了阐明性文档。特别是提到 CDN 不是我们免费服务的一部分。
* Google 登录修复(博客文章待发布)。

### 新 PlayStream 事件

* `developer_logged_in`
* `developer_registered`
* [studio\_created](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/DeveloperIdentity/studio-created.md)
* [studio\_user\_added](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/DeveloperIdentity/studio-user-added.md)
* [studio\_user\_invited](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/DeveloperIdentity/studio-user-invited.md)
* [studio\_user\_removed](https://devdocs.xbox.com/zh-CN/services/playfab/api-references/events/DeveloperIdentity/studio-user-removed.md)

### JavaScriptSDK 相关更改

* [JavaScriptSDK](https://github.com/PlayFab/JavaScriptSDK)
  * 主要升级发布日!版本号更新为 1.0。
  * TypeScript 集成!
  * 仓库清理:将 SDK 文件与示例文件分开。
  * 将我们的示例项目转换为 TypeScript。
  * 请参阅[我们的博客](https://blog.playfab.com/blog/typescript/)!

### NodeSDK 相关更改

* [NodeSDK](https://github.com/PlayFab/NodeSDK)
  * 主要升级发布日!版本号更新为 1.0
  * TypeScript 集成!
  * 将我们的示例项目转换为 TypeScript
  * 请参阅[我们的博客](https://blog.playfab.com/blog/typescript/)!

### CloudScript 示例

* 发布了一个新的示例仓库。
* TypeScript 集成!
* 请参阅[我们的博客](https://blog.playfab.com/blog/typescript/)!
* 以及[新仓库](https://github.com/PlayFab/SdkTestingCloudScript)!
* 我们将随着时间的推移扩展这个仓库。

### UnitySDK 相关更改

* [UnitySDK](https://github.com/PlayFab/UnitySDK)
  * 修复了 **JsonWrapper** 在某些情况下未按预期工作的问题。
  * 有关详细信息,请参阅我们的论坛帖子:[https://community.playfab.com/questions/7599/cloudscript-getplayercombinedinfo-little-problem.html](https://community.playfab.com/questions/7599/cloudscript-getplayercombinedinfo-little-problem.html)
  * 删除了以下所有已弃用的包装类,改用 `PlayFab.Json.JsonWrapper`:
    * `PlayFab.Json.JsonConvert`(使用 `PlayFab.Json.JsonWrapper`)
    * `PlayFab.Json.SimpleJson`(使用 `PlayFab.Json.JsonWrapper` 或 `PlayFab.Json.PlayFabSimpleJson`)
    * `PlayFab.SimpleJson`(使用 `PlayFab.Json.JsonWrapper` 或 `PlayFab.Json.PlayFabSimpleJson`)
  * 重复[160627](https://devdocs.xbox.com/zh-CN/services/playfab/release-notes/2016.md#160627)中的说明,`UnityEngine.SimpleJson` 是 `UnityEngine.dll` 中的一个空命名空间,这使得我们必须不使用该标识符。

### Unity Editor Extensions

* 解决了如果你的账户无法查看任何 studios,PlayFab 面板将无限重新加载的问题。
* 解决了如果你从 PlayFab 面板中选择你的游戏标题,`PlayFabSharedSettings`(Scriptable Object)未正确保存的问题。

## 170109

日期:2017 年 1 月 8 日

### 破坏性更改

* 删除了旧版本 WindowsSDK 中的库,必须在 Visual Studio 中重新创建它们。这些库从未在 vs2015 中工作过,因此强烈建议你只需更新到上周发布的最新 WindowsSDK。

### API 更改

* 修复了文档中的错别字。

### 所有 SDK

* [新的入门指南](https://devdocs.xbox.com/zh-CN/services/playfab/get-started.md)

### SDKGenerator 相关更改

* [SDKGenerator](https://github.com/PlayFab/SDKGenerator)
  * [ActionScriptSDK](https://github.com/PlayFab/ActionScriptSDK) 构建脚本与其他 SDK 不一致。我们简化了构建 [ActionScriptSDK](https://github.com/PlayFab/ActionScriptSDK) 的 [SDKGenerator](https://github.com/PlayFab/SDKGenerator) 命令以与其他 SDK 匹配。(SDK 本身没有更改。)

### UnitySdk 相关更改

* [UnitySdk](https://github.com/PlayFab/UnitySDK)
  * PlayFabSettings 中的一些公共元素已获得 Obsolete 标签:`PlayFabSettings.PlayFabSharedSettings` `PlayFabSettings.DefaultPlayFabApiUrl` `PlayFabSettings.GetSharedSettingsObject()` `PlayFabSettings.ProductionEnvironmentUrl`

这些在过渡期后将变为私有。

### WindowsSDK 相关更改

* 对 GitHub 仓库进行了 BFG 清理,并从历史记录中删除了所有大文件。删除你的 clone 或 fork,重新创建它,以便你的历史记录是干净的。

## 170102

日期:2017 年 1 月 1 日

### API 更改

* `Client/GetUserCombinedInfo` 已完全过时,我们已从 SDK 和文档中删除它。

### Cocos2d-xSDK 相关更改

* [Cocos2d-xSDK](https://github.com/PlayFab/Cocos2d-xSDK)
  * 修复了 PlayFab API 返回无效响应时的崩溃。
  * 解决了一些编译器警告。
  * 在我们的测试示例项目中为 lambda 回调函数添加了单元测试。

### UnitySDK 相关更改

* [UnitySDK](https://github.com/PlayFab/UnitySDK)
  * 我们已在内部更新到 Unity 5.5,我们的 **.unitypackage** 文件是使用此版本构建的

  * 一如既往,我们继续支持*所有 Unity 4.7 及更高版本*。

  * 向许多静态类添加了静态构造函数,以巩固 **Mono2x** 编译器中的初始化序列。这应可解决我们在 iOS 中看到的一些 `PlayFabSharedSettings` 问题。

  * **IDFA/ADID** 现在将在 Unity 5.6 beta 上正常工作。

  * **已知问题:** Unity 5.6 beta 构建在 **Windows Server** (**OS**) 上不工作,其中包括 PlayFab 游戏服务器托管。如果这影响到你,请联系 Unity。

### WindowsSDK 相关更改

* 主要升级发布日!
* 博客文章:[Windows SDK 更新已发布](https://api.playfab.com/blog/windows-SDK-update-released)
* 升级指南:[PlayFab WindowsSdk v0.x -> v1.x 升级指南](https://github.com/PlayFab/WindowsSdk/blob/master/UpgradeGuide.md)


## Related topics

- [PlayFab 2018 版本发布说明](https://devdocs.xbox.com/zh-CN/services/playfab/release-notes/2018.md)
- [PlayFab 2019 版本发布说明](https://devdocs.xbox.com/zh-CN/services/playfab/release-notes/2019.md)
- [PlayFab 2021 版本发布说明](https://devdocs.xbox.com/zh-CN/services/playfab/release-notes/2021.md)
- [PlayFab 2015 版本发布说明](https://devdocs.xbox.com/zh-CN/services/playfab/release-notes/2015.md)
