Integrate

0. 최신 ADX Unity SDK 버전

Version 2.6.3

Release Date : 2024/10/16

1. 최소 지원 사양

  • Android

    • compileSdkVersion 34 이상

    • minSdkVersion 21 이상

  • iOS

    • iOS 12.0 이상

    • Xcode 15.3 이상

      • ADX Unity SDK 2.5.7 이상 사용 시, Xcode 15.3 이상에서 빌드 필요.

    • CocoaPods

  • Unity Editor

    • Unity 2019.4 이상

Xcode15 이상에서 빌드할 경우, iOS Deployment Target 버전 (최소 지원 버전)을 12.0 이상으로 설정합니다. iOS 12.0 이상 버전으로 설정하지 않으면 특정 광고 네트워크의 초기화 과정에서 비정상 종료(Crash)가 발생할 수 있습니다.

2. ADX Unity SDK 추가

1) ADX Unity SDK를 다운로드 합니다.

2) Assets > Import Package > Custom Package를 선택하여 다운로드한 ADXUnityPackage.unitypackage 파일을 찾아 추가하거나 ADXUnityPackage.unitypackage를 더블클릭하여 실행합니다.

새로운 Package로 업데이트 시 ADXUnityPackage를 import 하기 전에, 아래의 폴더 및 파일을 모두 삭제하신 후 진행해주시기 바랍니다.

  • Assets/ADXLibrary 폴더 제거

  • Assets/GoogleMobileAds 폴더 제거

  • Assets/Plugins/Android 폴더 내에 AdMob 관련 파일 제거

  • Assets/Plugins/iOS 폴더 내에 AdMob 관련 파일 제거

3) 모든 파일을 선택하고 import 합니다.

4) Unity Play Services Resolver가 이미 포함되어 있으시면 ADXUnityPackage에서 ExternalDependencyManager를 제외하신 후 import 해주시면 됩니다.

3. Project Setting

1) Android Setting

  • Assets/Plugins/Android 디렉토리에 mainTemplate.gradle 파일을 열어 android 섹션에서 compileOptions을 추가합니다.

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}
  • Play Services Resolver 관련하여 아래 내용을 실행합니다.

    • Assets > External Dependency Manager > Android Resolver > Settings를 선택하고 Use Jetifier 체크 후 Force Resolver를 실행합니다.

Jetifier 사용을 통한 AndroidX 관련 레거시 지원을 위해 반드시 설정하여 주시기 바랍니다.

2) iOS Setting

  • Assets > External Dependency Manager > iOS Resolver > Settings > Add use_frameworks! to Podfile에 체크가 되어 있는지 확인합니다.

  • Assets > External Dependency Manager > iOS Resolver > Settings > Link frameworks statically에 체크가 되어 있는지 확인합니다. (Unity 엔진 2019.4 이상 사용 시)

  • 유니티 에디터에서 빌드 후, *.xcworkspace (Unity-iPhone.xcworkspace) 확장자 파일을 Xcode에서 열기 합니다.

    유니티 에디터에서 iOS로 빌드하면, 코코아팟(cocoapod)를 사용하기 때문에 "xcodeproj" 확장자가 아닌
    "xcworkspace" 확장자 파일을 Xcode에서 열기 해야 합니다.
  • 프로젝트의 Bulid Settings에서 Enable BitcodeNo로 변경합니다.

  • Unity 2019.3 버전 이상의 경우 Unity-iPhone 과 UnityFramework 모두 Enable BitcodeNo로 변경합니다.

  • XCode > 빌드 타겟 (UnityFramework) 선택 > Build Settings > Ohter Linker Flags 에서 "-all-load" 또는 "-force_load" 플래그를 사용하여 빌드 할 경우, 심볼 중복 (Symbol Duplicate)가 발생할 수 있습니다. 이 경우 "-ObjC" 플래그로 변경하십시오.

  • 아래 빌드 타겟에 "$(inherited)" 추가 되어 있는지 확인하고 추가되어 있지 않다면 관련 라이브러리를 찾을 수 없다는 빌드 에러가 발생할 수 있으므로 추가해주십시오. - Xcode > 빌드 타겟 (Unity-iPhone) 선택 > Build Settings > Other Linker Flag - Xcode > 빌드 타겟 (UnityFramework) 선택 > Build Settings > Framework Search Paths

  • "Cannot use '@try' with Objective-C exceptions disabled" 와 같은 빌드 에러가 발생할 경우, 아래 설정 값을 'No'에서 'Yes'로 변경하여 주십시오. - Xcode > 빌드 타겟 (Unity-Framework) 선택 > Enable Objective-C Exceptions

4. iOS 14+ 지원

iOS 14 이상 지원하는 경우 IDFA (Identifier for Advertisers) 식별자를 얻기 위해 ATT(App Tracking Transparency) Framework를 반드시 적용해야 합니다. 자세한 방법은 아래 링크를 참고해주세요.

App Tracking Transparency

5. Notice

1) Android Gradle 버전 (ADX Unity SDK 2.4.0 이상, 유니티 엔진 버전 체크)

ADXUnityPackage 2.4.0 이상 사용하시는 경우 Gradle 버전이 6.7.1 이상 연동해야 안정적으로 안드로이드 빌드가 진행됩니다.

  • Gradle 권장 버전 이하 사용시 애드몹 유니티 플러그인에 의해 This feature requires ASM7 오류가 발생되며 아래의 방법 중 하나로 해결 가능합니다.

    • Gradle과 Gradle Plugin 변경을 통한 해결 (권장)

    • 유니티 엔진 업데이트를 통해 해결

    • android.enableDexingArtifactTransform=false를 주석처리 방법으로 해결

  • Gradle과 Gradle Plugin 변경 (Gradle : 6.7.1+, Gradle Plugin 4.2.0+)

    • Custom Base Gradle Template 사용을 안하고 계실 경우 사용하도록 변경합니다.

      • Build Settings -> Project Settings -> Player -> Custom Base Gradle Template 체크를 합니다.

      • 이때 Assets/Plugins/Android/baseProjectTemplate.gradle 이 없을 경우 생성됩니다.

    • Gradle Plugin 버전을 변경합니다.

      • Assets/Plugins/Android/baseProjectTemplate.gradle 파일을 열어서 버전을 변경합니다.

      • 'com.android.tools.build:gradle:4.2.0'

    • Gradle 다운로드합니다.

    • Gradle 설치 경로를 변경합니다.

      • Preferences -> External Tools -> Gradle Installed with Unity 체크 해제합니다.

      • Gradle 다운로드한 경로로 설정합니다.

        • 예) ~/Users/sunny/gradle-6.7.1

    • Android Resolver를 진행합니다.

      • Assets -> External Dependency Manager -> Android Resolver -> Delete Resolved Libraries

      • Assets -> External Dependency Manager -> Android Resolver -> Force Resolve

    • 마지막으로 Target API Level이 33이상 되었는지 확인 후 빌드를 진행합니다.

2) AdMob App ID 초기화 문제

  • GoogleMobileAdsSettings에 입력한 App ID가 삭제되는 경우 Unity > Assets > Google Mobile Ads > Settings에서 Delay app measure를 체크 했다가 해제하여 주시기 바랍니다.

Last updated