# 업데이트 가이드

> 탭조이 SDK 버전 간 전환을 위해 Android 업데이트 가이드를 따르십시오. 각 단계별 지침을 완료하면 통합 오류나 호환성 문제를 방지하는 데 도움이 됩니다.

이 가이드에서는 하나의 Offerwall SDK 버전에서 다른 버전으로 업데이트할 때 필요한 단계를 설명합니다. 모든 단계를 수행하여 문제나 충돌이 발생하는 것을 방지합니다.

## 14.3.0##14.3.0

* `Tapjoy.setDebugEnabled` 사용을 모두 `Tapjoy.setLoggingLevel(TJLogLevel.Debug)`로 대체합니다. 전자는 더 이상 사용되지 않습니다.
* 로그 레벨은 다음과 같습니다. 오류, 경고, 정보, 디버그
* `TapjoyConnectFlag.ENABLE_LOGGING` 사용을 모두 `TapjoyConnectFlag.TJC_OPTION_LOGGING_LEVEL`로 대체합니다. 전자는 더 이상 사용되지 않습니다.

## 14.2.0##14.2.0

* 사용 중단된 TJPlacementListener onClick 메서드의 사용을 제거합니다. 다음 메이저 버전에서 제거되며 더 이상 아무 기능도 하지 않습니다.
* 지원 중단된 getSupportUrl 메서드의 모든 사용을 제거합니다. 다음 메이저 버전에서 제거되며 더 이상 아무 기능도 하지 않습니다.

### 수동 연동##manual-integration

수동으로 연동하는 경우 매니페스트에 추가할 수 있는 두 가지 새로운 활동이 있습니다. 이는 예측적 후면 제스처와 관련이 있습니다.

```xml
<activity
    android:name="com.tapjoy.TJAdUnitActivity"
    android:enableOnBackInvokedCallback="false"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@style/TranslucentTheme"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />
<activity
    android:name="com.tapjoy.TJWebViewActivity"
    android:enableOnBackInvokedCallback="false"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:theme="@style/TranslucentTheme"
    android:hardwareAccelerated="true"
    tools:ignore="UnusedAttribute" />
```

## 14.0.0##14.0.0

* `Tapjoy.setActivity()`의 사용을 제거합니다. 다음 메이저 버전에서 제거되며 더 이상 아무 기능도 하지 않습니다.
* `Tapjoy.setGLSurfaceView()`의 사용을 제거합니다. 다음 메이저 버전에서 제거되며 더 이상 아무 기능도 하지 않습니다.
* 사용 중단된 메서드 `Tapjoy.trackPurchase()`의 사용을 `trackPurchase(String currencyCode, double price)`로 대체한다.

## 13.4.0##13.4.0

새로운 `connectWarning` 콜백이 추가되었습니다. 연결 중에 블로킹 이외 문제가 발생할 때 작동하며, 이후 `connectSuccess`가 작동합니다. 현재 이 기능은 ConnectFlags에서 전송된 경우에만 UserId 관련 문제를 감지합니다.

```java title="Java"
Tapjoy.connect(getContext().getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {
    @Override
    public void onConnectSuccess() {
        
    }
    @Override
    public void onConnectWarning(int code, String message) {
        
    }
    @Override
    public void onConnectFailure(int code, String message) {
        
    }    
}); 
```

## 13.2.0##13.2.0

### Connect##connect

오류 코드 및 메시지 파라미터를 `connectFailure` 콜백에 추가했습니다. 이전 콜백은 이제 사용 중단되었지만 여전히 작동합니다.

```java title="Java"
Tapjoy.connect(getContext().getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {
    @Override
    public void onConnectSuccess() {
        super.onConnectSuccess();
    }    
    @Override
    public void onConnectFailure(int code, String message) {
        super.onConnectFailure(code, message);
    }    
    @Override
    public void onConnectFailure() { //Deprecated
        super.onConnectFailure();
    }
}); 
```

### 최대 사용자 레벨##max-user-level

이제 게임의 레벨 개수를 설정할 수 있습니다. 연결 전이나 후에 설정할 수 있습니다.

```java title="Java"
Tapjoy.setMaxLevel(10); 
```

### 사용자 세그먼트##user-segment

이제 현재 앱을 사용하는 사용자 유형을 설정할 수 있습니다. 연결 전후나 세션 중에 설정할 수 있습니다.

```java title="Java"
Tapjoy.setUserSegment(TJSegment.VIP);
Tapjoy.setUserSegment(TJSegment.PAYER);
Tapjoy.setUserSegment(TJSegment.NON_PAYER);
Tapjoy.setUserSegment(TJSegment.UNKNOWN); 
```

### 엔트리 포인트##entry-point

\_request connect\_를 호출하기 전에 엔트리 포인트를 설정할 수 있습니다. 이는 앱에서 플레이스먼트가 표시되는 위치를 설명합니다. 여러 프리셋 값 중 하나를 선택할 수 있습니다.

```java title="Java"
TJPlacement placement = Tapjoy.getPlacement("myPlacement", null);
placement.setEntryPoint(TJEntryPoint.ENTRY_POINT_MAIN_MENU);
placement.requestContent(); 

// Available values
TJEntryPoint.ENTRY_POINT_UNKNOWN
TJEntryPoint.ENTRY_POINT_OTHER
TJEntryPoint.ENTRY_POINT_MAIN_MENU
TJEntryPoint.ENTRY_POINT_HUD
TJEntryPoint.ENTRY_POINT_EXIT
TJEntryPoint.ENTRY_POINT_FAIL
TJEntryPoint.ENTRY_POINT_COMPLETE
TJEntryPoint.ENTRY_POINT_INBOX
TJEntryPoint.ENTRY_POINT_INIT
TJEntryPoint.ENTRY_POINT_STORE 
```

### 재화##currency

* get, spend, earn에서는 이제 음수 값을 사용할 수 없습니다.
* 자체 관리형 재화가 관리형 재화 API를 호출하면 오류가 반환됩니다.

이제 플레이스먼트를 생성하기 전에 사용자 잔액을 설정할 수 있습니다. *requestContent* 이전에 설정해야 합니다.

```java title="Java"
TJPlacement placement = Tapjoy.getPlacement("placement", this);
placement.setCurrencyBalance("1234", 100, new TJSetCurrencyBalanceListener() {
    @Override
    public void onSetCurrencyBalanceSuccess() {
        
    }

    @Override
    public void onSetCurrencyBalanceFailure(int code, String error) {

    }
}); 
```

사용자가 각 플레이스먼트에서 목표를 달성하는 데 필요한 재화를 설정할 수도 있습니다.

```java title="Java"
TJPlacement placement = Tapjoy.getPlacement("placement", this);
placement.setCurrencyAmountRequired("1234", 100, new TJSetCurrencyAmountRequiredListener() {
    @Override
    public void onSetCurrencyAmountRequiredSuccess() {
        
    }

    @Override
    public void onSetCurrencyAmountRequiredFailure(int code, String error) {

    }
});
```

## 12.8.0##12.8.0

탭조이는 현재 자체 Maven 저장소를 호스팅하고 있습니다. Bintray는 당분간 계속 작동하겠지만, 더 이상 지원되지 않으므로 가능한 한 빨리 저희 저장소로 업데이트하시길 권장합니다.

기존 및 신규 릴리스는 모두 Unity 저장소를 통해 이용 가능하며, Bintray에서는 12.8.0 이전 버전만 계속 제공될 예정입니다.

다음과 같이 새 저장소를 사용할 수 있습니다.

```java title="Java"
    repositories {
      maven {
        name "Tapjoy's maven repo"
        url "https://sdk.tapjoy.com/"
      }
    }

    dependencies {
      api 'com.tapjoy:tapjoy-android-sdk:12.8.0@aar'
    }
```
