# 更新指南

> 参考 Unity 插件更新指南了解在各 SDK 版本之间进行安全升级的步骤。

本指南介绍从一个 Offerwall SDK 版本更新到另一个版本时所需的步骤，建议您执行所有步骤以防止发生任何问题或冲突。

## 14.2.0##14.2.0

* 移除已弃用的 TJPlacement didClick 回调的所有用例。此方法将在下一个主要版本中移除，目前已不再发挥任何作用。
* 移除已弃用的 getSupportUrl 方法的所有用例。此方法将在下一个主要版本中移除，目前已不再发挥任何作用。

## 14.0.0##14.0.0

* 将已弃用的 `Tapjoy.TrackPurchase` 方法的用例替换为新的 `Tapjoy.TrackPurchase(string currencyCode, double productPrice)` 方法。

## 13.4.0##13.4.0

我们新增了一个 `connectWarning` 回调。当连接过程中出现非阻塞问题时将触发此回调，随后仍会触发 `connectSuccess`。目前，此功能仅用于检测在 ConnectFlags 中发送的 UserId 的相关问题。

```csharp
Tapjoy.OnConnectWarning += HandleConnectWarning;

void HandleConnectWarning(int code, string message)
{
    
}
```

## 13.2.0##13.2.0

### 连接##connect

我们向 connectFailure 回调添加了错误代码和消息参数。以前的回调现已弃用，但仍然有效。

```csharp
void Start() {	
    // Connect Delegates	
    Tapjoy.OnConnectSuccess += HandleConnectSuccess;	
    Tapjoy.OnConnectFailed += HandleConnectFailed;
	// Deprecated since 13.2.0	
    Tapjoy.OnConnectFailure += HandleConnectFailure;
    }
void OnDisable(){	
    // Connect Delegates	
    Tapjoy.OnConnectSuccess -= HandleConnectSuccess;	
    Tapjoy.OnConnectFailed -= HandleConnectFailed;
	// Deprecated since 13.2.0	
    Tapjoy.OnConnectFailure -= HandleConnectFailure;
    }
public void HandleConnectFailed(int code, string message){

}
// Deprecated since 13.2.0public void HandleConnectFailure(){
} 
```

### 最大用户等级##max-user-level

现在可以设置游戏中的关卡数。此设置可以在连接之前或之后进行。

```csharp
Tapjoy.SetMaxLevel(10); 
```

### 用户细分段##user-segment

现在可以设置当前使用应用的用户类型。此设置可以在连接之前或之后或在会话期间进行。

```csharp
Tapjoy.SetUserSegment(TJSegment.VIP);
Tapjoy.SetUserSegment(TJSegment.Payer);
Tapjoy.SetUserSegment(TJSegment.NonPayer);
Tapjoy.SetUserSegment(TJSegment.Unknown); 
```

### 入口点##entry-point

在调用\_请求连接\_之前，可以设置入口点。该设置用于指定广告位将在应用中的显示位置。您可以从多个预设值中选择一个值。

```csharp
TJPlacement placement = TJPlacement.CreatePlacement("placementName");
placement.SetEntryPoint(TJEntryPoint.COMPLETE); 

// Available values
TJEntryPoint.UNKNOWN
TJEntryPoint.OTHER
TJEntryPoint.MAIN_MENU
TJEntryPoint.HUD
TJEntryPoint.EXIT
TJEntryPoint.FAIL
TJEntryPoint.COMPLETE
TJEntryPoint.INBOX
TJEntryPoint.INIT
TJEntryPoint.STORE 
```

### 货币##currency

* get/spend/earn 方法将不再接受负值。
* 如果自管货币调用托管货币 API，则会返回错误。

现在可以在创建广告位之前设置用户余额。此设置必须在 *requestContent* 之前进行。

```csharp
TJPlacement placement = TJPlacement.CreatePlacement("placementName");
placement.SetCurrencyBalance("[CURRENCY_ID]", 100);

// Callbacks

void OnEnable() 
{	
    TJPlacement.OnSetCurrencyBalanceSuccess += HandleSetCurrencyBalanceSuccess;	
    TJPlacement.OnSetCurrencyBalanceFailure += HandleSetCurrencyBalanceFailure;	
}

void OnDisable() 
{	
    TJPlacement.OnSetCurrencyBalanceSuccess -= HandleSetCurrencyBalanceSuccess;	
    TJPlacement.OnSetCurrencyBalanceFailure -= HandleSetCurrencyBalanceFailure;
}

public void HandleSetCurrencyBalanceSuccess(TJPlacement placement) 
{

}

public void HandleSetCurrencyBalanceFailure(TJPlacement placement, int code, string error)
{

}
```

还可以设置用户在每个广告位上实现目标所需的货币数量。

```csharp
TJPlacement placement = TJPlacement.CreatePlacement("placementName");
placement.SetRequiredAmount("[CURRENCY_ID]", 200); 

// Callbacks

void OnEnable() 
{	
    TJPlacement.OnSetCurrencyAmountRequiredSuccess += HandleSetRequiredAmountSuccess;	
    TJPlacement.OnSetCurrencyAmountRequiredFailure += HandleSetRequiredAmountFailure;}

void OnDisable() 
{	
    TJPlacement.OnSetCurrencyAmountRequiredSuccess -= HandleSetRequiredAmountSuccess;	
    TJPlacement.OnSetCurrencyAmountRequiredFailure -= HandleSetRequiredAmountFailure;
}

public void HandleSetCurrencyBalanceSuccess(TJPlacement placement)
{

}

public void HandleSetCurrencyBalanceFailure(TJPlacement placement, int code, string error)
{

}

public void HandleSetRequiredAmountSuccess(TJPlacement placement)
{

}
public void HandleSetRequiredAmountFailure(TJPlacement placement, int code, string error)
{

}
```

## 12.8.1##12.8.1

在更新之前，从 `Assets > Plugins > Android` 中删除所有 Tapjoy 和 Google Play 服务文件。

Offerwall SDK 现由 External Dependency Manager (EDM) 使用 Maven 进行管理。EDM 包含在 Tapjoy Unity 插件中，并且是支持 Android 的必要条件。

### 自定义 Gradle 模板##custom-gradle-templates

如果使用自定义 Gradle 模板，必须启用 Jetifier。

如果您使用的 Unity 编辑器版本中提供了自定义 Gradle 属性文件的选项，还必须使用该文件。

## 12.8.0##12.8.0

在更新之前，删除 `Assets > iOS` 下的 Tapjoy.framework 和 Resources 文件夹。

Offerwall SDK 现由 External Dependency Manager (EDM) 使用 Cocoapods 进行管理。EDM 包含在 Tapjoy Unity 插件中，并且是支持 iOS 的必要条件。确保 Cocoapods 版本为 1.9.0 或更高版本，且 Xcode 版本为 11.0 或更高版本。
