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

# React Native 마이그레이션 가이드

export const androidPlguinLatestVersion = '1.0.13';

export const androidDaroMLatestVersion = '1.3.15';

## 프로젝트 설정

아래의 가이드에 따라, Android, iOS 프로젝트 세팅을 변경합니다.

<Accordion title="Android 프로젝트 설정하기" icon="sparkles">
  <Steps>
    <Step title="프로젝트 단위 빌드 설정">
      `daro-plugin` 의존성을 변경합니다.

      <Info>
        Latest version

        * daro-plugin : {androidPlguinLatestVersion}
      </Info>

      <CodeGroup>
        ```kotlin kotlin {12} theme={null}
        buildscript {
            repositories {
                google()
                mavenCentral()
                maven { url = uri("https://artifacts.applovin.com/android") }
            }
            dependencies {
                // as-is
                // classpath("com.github.delightroom:daro-android-plugin:0.4.4")

                // to-be
                classpath("so.daro:daro-plugin:{version}")
                classpath("com.applovin.quality:AppLovinQualityServiceGradlePlugin:5.5.2")
            }
        }
        ```

        ```groovy groovy {12} theme={null}
        buildscript {
            repositories {
                google()
                mavenCentral()
                maven { url 'https://artifacts.applovin.com/android' }
            }
            dependencies {
                // as-is
                // classpath 'com.github.delightroom:daro-android-plugin:0.4.4'

                // to-be
                classpath 'so.daro:daro-plugin:{version}'
                classpath 'com.applovin.quality:AppLovinQualityServiceGradlePlugin:5.5.2'
            }
        }
        ```
      </CodeGroup>
    </Step>

    <Step title="build.gradle(app)에 daro plugin 적용">
      <CodeGroup>
        ```kotlin kotlin {7} theme={null}
        plugins {
            ...
            // as-is
            // id("droom.daro.m")

            // to-be
            id("so.daro.m")
            ...
        }
        ```

        ```groovy groovy {7} theme={null}
        plugins {
            ...
            // as-is
            // id 'droom.daro.m'

            // to-be
            id 'so.daro.m'
            ...
        }
        ```
      </CodeGroup>
    </Step>

    <Step title="key file 설정">
      1. `daro-services.json`룰 삭제하고 아래처럼 `daro-key.txt`를 다운받아 아래처럼 추가합니다.

         * flavor 구분없이 공통으로 사용하는 경우

         ```
         app/
         └── daro-key.txt
         ```

         * flavor별로 다르게 설정하는 경우

         ```
         app/
         └── src/
             ├── debug/
             │   └── daro-key.txt
             └── release/
                 └── daro-key.txt
         ```

               <Note>
                 `daro-key.txt`는 DARO 대시보드에서 다운받을 수 있습니다.
               </Note>

      2. `gradle.properties` 파일에 `daroAppKey`를 추가합니다.
         ```properties {1} theme={null}
         daroAppKey={APP_KEY}
         ```

      <Note>
        daroAppKey는 DARO 대시보드에서 확인할 수 있습니다.

        <img src="https://mintcdn.com/delightroom-5a71a6a8/zubkjN5vMaM7lt41/sdk-integration/android/img/appkey_sample.png?fit=max&auto=format&n=zubkjN5vMaM7lt41&q=85&s=f233dd9e626ee9f7ff43100b33f83e4e" alt="daroAppKey" width="300" data-path="sdk-integration/android/img/appkey_sample.png" />
      </Note>
    </Step>

    <Step title="Daro SDK 의존성 추가">
      다음과 같이 의존성을 추가합니다.

      <Info>
        Latest version

        * daro-m : {androidDaroMLatestVersion}
      </Info>

      <CodeGroup>
        ```kotlin kotlin {3} theme={null}
        dependencies {
            ...
            implementation("so.daro:daro-m:{version}")
            ...
        }
        ```

        ```groovy groovy {3} theme={null}
        dependencies {
            ...
            implementation 'so.daro:daro-m:{version}'
            ...
        }
        ```
      </CodeGroup>
    </Step>
  </Steps>
</Accordion>

<Accordion title="iOS 프로젝트 설정하기" icon="sparkles">
  * `daro-service.json` -> `ios-daro-key.txt` 변경되었습니다.
  * Info.plist: `DaroAppKey` 설정

  <Note>
    `ios-daro-key.txt`는 DARO 대시보드에서 다운받을 수 있습니다.
  </Note>

  <Note>
    `DaroAppKey`는 DARO 대시보드에서 확인할 수 있습니다.
  </Note>

  자세한 내용은 [연동 문서](/ko/sdk-integration/ios_new/get-started)를 참조해주세요
</Accordion>

## 코드 구현하기

<Steps>
  <Step title="광고 Load에 사용하는 Ad Unit Id 변경">
    과거에 사용하던 Ad Unit Id가 새로운 SDK에서는 사용이 불가능합니다.<br />
    이에 따라 Daro 대시보드에서 변경된 Ad Unit Id를 받아서 코드에 적용해주세요

    <Danger>
      기존의 Ad Unit Id를 사용하면 광고 load에 실패하게 됩니다.. 반드시 Ad Unit Id를 교체해주세요.
    </Danger>
  </Step>

  <Step title="extraParameter, localExtraParameter, placement 제거">
    광고 로드 시 extraParameter, localExtraParameter, placement를 set 하는 메서드 지원이 중단됩니다.
    이에 따라, 이전에 해당 필드를 사용하고 있었다면 제거해야 합니다.
  </Step>

  <Step title="배너/MREC/Native refreshSeconds 제거">
    refreshSeconds를 클라이언트에서 직접 제어하는 대신에 daro 대시보드에서 remote로 제어할 수 있는 기능이 추가되었습니다.
    기존에 refreshSeconds를 변경하고 있었다면, 해당 필드를 제거하고, 대시보드에서 refreshSeconds를 적용해주세요.
  </Step>

  <Step title="광고 콜백 파라미터 변경 적용">
    기존의 광고 콜백에서 제공하는 AdInfo, AdLoadFailedInfo, AdDisplayFailedInfo 내부 필드가 변경되었습니다.
    이에 맞춰서 기존에 사용하고 있던 콜백들을 점검해주세요
  </Step>
</Steps>
