메인 콘텐츠로 건너뛰기

iOS

알립니다이 문서는 기존 AppDelegate 기반 앱을 UIScene(SceneDelegate)로 전환해야 하는 고객을 위한 트러블슈팅 가이드입니다.

문제 현상

  • Xcode 27에서 빌드한 앱을 실행하면 앱이 정상적으로 실행되지 않을 수 있습니다.
  • 스킴 딥링크(Scheme Deeplink) 또는 유니버설 링크(Universal Links)로 앱에 진입해도 Airbridge 딥링크 이벤트가 수집되지 않습니다.
  • 개발자 가이드의 SDK 초기화하기와 앱에서 딥링크 이벤트 수집하기 예제대로 AppDelegate에 코드를 작성했는데도 동작하지 않습니다.

발생 원인

Apple은 앱 생명주기를 UIApplicationDelegate(AppDelegate) 단독 방식에서 UIScene 기반(SceneDelegate) 방식으로 전환하고 있으며, 최신 Xcode/iOS에서는 Scene 생명주기 채택이 사실상 필수가 되었습니다.앱이 UIApplicationSceneManifest를 통해 Scene 생명주기를 채택하면, 다음 AppDelegate 딥링크 콜백은 더 이상 호출되지 않습니다.

해결 방법

Airbridge Unreal SDK 4.10.0 미만 버전에서는 Airbridge Deeplink을 호출하는 Public Interface가 존재하지 않습니다. 그러므로 Airbridge Unreal SDK 를 4.10.0 이상으로 업데이트 한 뒤, SceneDelegate에 Airbridge Deeplink를 호출 해 주세요.

1. Info.plist에 Scene Manifest 추가

UPL을 통해서 Xcode Project에 다음의 Info.plist에 Scene을 추가합니다.

2. SceneDelegate 생성 및 딥링크 수집 코드 작성

Scene Manifest에 추가된 UISceneDelegateClassName 의 이름에 맞추어 SceneDelegate 파일을 생성합니다.

3. 딥링크 수집 코드 추가

만들어진 SceneDelegate에 Airbridge Deeplink 수집을 위해 다음을 코드를 구현 해 주세요.

문제 현상

Password AutoFill 기능으로 저장된 암호의 도메인이 airbridge.io 또는 abr.ge로 보이는 현상이 앱을 사용하는 유저에게 발생할 수 있습니다.

발생 원인

에어브릿지 SDK의 딥링크를 설정한 후에 Password AutoFill 기능을 활용하면 도메인이 에어브릿지 딥링크의 앱 링크(applinks) 도메인 airbridge.io 또는 abr.ge로 저장됩니다.

해결 방법

Password AutoFill에 사용하는 webcredentials 도메인을 설정하면 문제를 해결할 수 있습니다.
  1. 암호를 저장하는 도메인을 준비해주세요.
  2. 아래 JSON을 https://YOUR_DOMAIN/.well-known/apple-app-site-association에 Content-Type: application/json으로 호스팅합니다. 준비한 도메인이 YOUR_DOMAIN입니다.
애플 개발자 대시보드의 [Identifiers]>[YOUR_APP]에서 App ID Prefix, Bundle ID를 확인할 수 있습니다.
  1. Xcode의 [YOUR_PROJECT]>[Signing & Capabilities]로 이동합니다.
  2. ’+ Capability’를 클릭해 Associated Domains를 추가합니다. Associated Domains에 webcredentials:YOUR_DOMAIN을 입력합니다.

문제 현상

App Store에 앱 업로드 시 Xcode에 Airbridge framework에 dSYM이 포함되어 있지 않다는 경고 메세지가 나타나는 현상

발생 원인

Airbridge iOS SDK에서 dSYM을 지원하고 있지 않습니다.

해결 방법

다음 버전에서 dSYM 지원을 개발 중에 있습니다. 해당 경고는 무시해 주세요.

안드로이드

문제 현상

빌드하면 아래 메시지와 함께 Dependencies coroutines 오류가 발생합니다.
Text

발생 원인

kotlinx-coroutines-core 라이브러리 버전이 v1.3.5 이상이면 kotlin-stdlib 라이브러리 버전이 일정 레벨 이상이어야 합니다.

해결 방법

gradlew dependencies 커멘드로 kotlin-stdlib 라이브러리 버전이 v1.3.70 이상인지 확인해 주세요. 해당 버전 미만이라면 업데이트를 진행해야 합니다.

문제 현상

브레이즈 SDK를 사용한 푸시 알림으로 발생한 딥링크 실행(Deeplink Open) 이벤트가 수집되지 않습니다. 대신 실행(Open) 이벤트가 수집됩니다.

발생 원인

에어브릿지 안드로이드 SDK는 activity의 action에 있는 dataString과 intent의 dataString으로 딥링크 실행 이벤트와 실행 이벤트를 판별합니다.브레이즈 SDK를 사용한 푸시 알림으로 앱을 실행하면 NotificationTrampolineActivity을 사용합니다. 브레이즈 SDK를 사용한 푸시 알림으로 앱을 실행하면 NotificationTrampolineActivity의 activity의 action과 intent로부터 dataString을 확인할 수 없습니다. 이로 인해 딥링크 실행 이벤트와 실행 이벤트를 판별할 수 없습니다.

해결 방법

커스텀 애플리케이션 클래스 (CustomApplication.java) 파일을 아래와 같이 추가해주세요.
커스텀 애플리케이션 클래스를 Android Manifest 파일에 Unreal Plugin Language (UPL)를 이용하여 아래와 같이 추가해주세요.

문제 현상

빌드하면 Manifest merger failed 오류가 발생합니다.

발생 원인

에어브릿지 SDK의 AndroidManifest.xml에는 공유 환경 설정 데이터 백업을 옵트아웃하는 규칙이 포함되어 있습니다. 이는 재설치 중에 동일한 에어브릿지 설정 값들을 유지하지 않도록 하여 새로운 설치 또는 재설치를 정확하게 감지하도록 하기 위해 수행됩니다.에어브릿지 SDK 백업 규칙과 앱 백업 규칙의 병합 과정에서 충돌이 발생할 수 있습니다.

해결 방법

에어브릿지 SDK에서 정의하는 옵트아웃하는 규칙은 다음과 같습니다.
fullBackupContent=“string”과의 충돌 방지
android:fullBackupContent="string"를 AndroidManifest.xml에 추가하면 다음과 같은 오류가 발생할 수 있습니다.
Build Output
위 오류를 해결하려면
  • 언리얼 에디터 Project Settings 창의 Platforms - Android > Advanced APK Packaging > Extra Tags for <manifest> node에 xmlns:tools="http://schemas.android.com/tools"를 추가 해주세요.
  • 언리얼 에디터 Project Settings 창의 Platforms > Android > Extra Tags for <application> node에 tools:replace="android:fullBackupContent"를 추가 해주세요.
dataExtractionRules=“string resource”과의 충돌 방지
android:dataExtractionRules="string resource"를 AndroidManifest.xml에 추가하면 다음과 같은 오류가 발생할 수 있습니다.
Build Output
위 오류를 해결하려면
  • 언리얼 에디터 Project Settings 창의 Platforms - Android > Advanced APK Packaging > Extra Tags for <manifest> node에 xmlns:tools="http://schemas.android.com/tools"를 추가 해주세요.
  • 언리얼 에디터 Project Settings 창의 Platforms > Android > Extra Tags for <application> node에 tools:replace="android:dataExtractionRules"를 추가 해주세요.
allowBackup=“false”과의 충돌 방지
android:allowBackup="false"를 AndroidManifest.xml에 추가하면 다음과 같은 오류가 발생할 수 있습니다.
Build Output
위 오류를 해결하려면
  • 언리얼 에디터 Project Settings 창의 Platforms - Android > Advanced APK Packaging > Extra Tags for <manifest> node에 xmlns:tools="http://schemas.android.com/tools"를 추가 해주세요.
  • 언리얼 에디터 Project Settings 창의 Platforms > Android > Extra Tags for <application> node에 tools:replace="android:allowBackup"를 추가 해주세요.
compileSdkVersion이 31 미만일 경우
android:dataExtractionRules 기능이 API Level 31 부터 추가되었기 때문에 compileSdkVersion이 31 미만일 경우, 다음과 같은 오류가 발생할 수 있습니다.
Build Output
위 오류를 해결하려면
  • 언리얼 에디터 Project Settings 창의 Platforms - Android > Advanced APK Packaging > Extra Tags for <manifest> node에 xmlns:tools="http://schemas.android.com/tools"를 추가 해주세요.
  • 언리얼 에디터 Project Settings 창의 Platforms > Android > Extra Tags for <application> node에 tools:remove="android:dataExtractionRules"를 추가 해주세요.
아래 가이드를 함께 참고해 주세요.

문제 현상

에어브릿지 SDK 백업 규칙과 다른 서드파티 SDK (예. Appsflyer SDK) 백업 규칙이 중복 적용되는 경우 아래와 같은 빌드 에러가 표시됩니다.

발생 원인

에어브릿지 SDK 백업 규칙과 서드파티 SDK 백업 규칙 중복 적용으로 인해 빌드 에러가 발생할 수 있습니다.

해결 방법

backup_rules.xml 설정
  1. 모듈 디렉터리 내부에 (e.g. custom_backup_rules.xml) 파일을 생성해주세요.
  2. 에어브릿지 SDK에서 정의하는 데이터 백업 규칙을 다음과 같이 추가해 주세요.
  1. 언리얼 플러그인 언어(Unreal Plugin Language,UPL)를 이용하여 res/xml 폴더에 해당 파일을 다음과 같이 복사해 주세요.
data_extraction_rules.xml 설정
  1. 모듈 디렉터리 내부에 (e.g. custom_data_extraction_rule.xml) 파일을 생성해주세요.
  2. 에어브릿지 SDK에서 정의하는 데이터 백업 규칙을 다음과 같이 추가해 주세요.
  1. 언리얼 플러그인 언어(Unreal Plugin Language,UPL)를 이용하여 res/xml 폴더에 해당 파일을 다음과 같이 복사해 주세요.
AndroidManifest.xml 설정
언리얼 에디터 Project Settings 창의 Platforms - Android > Advanced APK Packaging > Extra Tags for <manifest> node 에 아래에 해당하는 요소들을 추가해 주세요.
  • xmlns:tools="http://schemas.android.com/tools"
언리얼 에디터 Project Settings 창의 Platforms - Android > Advanced APK Packaging > Extra Tags for <application> node 에 아래에 해당하는 요소들을 추가해 주세요.
  • android:allowBackup="true"
  • android:fullBackupContent="@xml/custom_backup_rules"
  • android:dataExtractionRules="@xml/custom_data_extraction_rules"
  • tools:replace="android:fullBackupContent, android:dataExtractionRules"
아래 가이드를 함께 참고해 주세요.

발생 현상

LAT(LimitAdTracking)를 비활성화한 상태에서 정상적으로 수집되어야 하는 GAID가 00000000-0000-0000-0000-000000000000으로 수집됩니다.

발생 원인

다른 서드파티 라이브러리 등으로 인해 AD_ID 권한이 제외되었습니다.

해결 방법

AD_ID 권한을 추가합니다.

증상

Google Play Console에 앱을 업로드할 때 아래 경고 중 하나가 표시될 수 있습니다. 표시된 경고 문구에 따라 원인이 다르므로, 먼저 어떤 경고인지 확인해 주세요.A. 16KB 페이지 크기 미지원
  • “Your app doesn’t support 16 KB page size”
  • “16 KB page size compatibility required”
  • App Bundle 탐색기의 메모리 페이지 크기 항목에 “Does not support 16 KB”로 표시됩니다.
B. 16KB 정렬 경고 (PT_GNU_RELRO)
  • 16KB 지원 버전의 SDK를 사용하고 있는데도 16KB 페이지 크기 경고가 계속 표시됩니다.
C. NDK 버전 경고

원인

Google Play는 Android 15(API 레벨 35) 이상을 타겟팅하는 앱에 대해 64비트 기기에서 16KB 페이지 크기 지원을 요구합니다. 앱에 포함된 네이티브 라이브러리(.so)가 16KB 정렬로 빌드되지 않았거나, 빌드에 사용된 NDK 버전이 Google Play의 검사 기준보다 낮으면 경고가 표시됩니다.Airbridge SDK의 네이티브 라이브러리는 버전에 따라 아래와 같이 경고 대상이 됩니다.
v4.12.0 이상을 사용하면 위 세 가지 경고가 모두 해소됩니다.Airbridge Android SDK v4.12.0부터 NDK r29(29.0.14206865)로 빌드됩니다. 어떤 경고를 받았는지와 관계없이 권장 버전으로 업데이트해 주세요.

해결 방법

1단계: Airbridge SDK 버전 확인 및 업데이트
사용 중인 플랫폼의 Airbridge SDK 버전을 아래 표와 비교해 주세요.
  • 16KB 지원 시작 버전 미만인 경우: 16KB 페이지 크기를 지원하지 않습니다. 반드시 업데이트해 주세요.
  • 16KB 지원 시작 버전 이상, PT_GNU_RELRO 이슈 수정 버전 미만인 경우: 경고 B 또는 C가 표시될 수 있습니다.
  • PT_GNU_RELRO 이슈 수정 버전 이상, 권장 버전 미만인 경우: 경고 C가 표시될 수 있습니다.
경고를 해소하려면 권장 버전 이상으로 업데이트해 주세요. 권장 버전이 아직 배포되지 않은 플랫폼은 PT_GNU_RELRO 이슈 수정 버전 이상을 사용해 주세요.
2단계: Android Gradle Plugin(AGP) 버전 확인 및 설정
프로젝트의 AGP 버전을 확인해 주세요.AGP 8.5.1 이상을 사용하는 경우
  • 별도 설정 없이 16KB zipalign이 자동으로 적용됩니다.
  • 3단계로 진행해 주세요.
AGP 8.5.0 이하를 사용하는 경우
  • 방법 A: AGP를 8.5.1 이상으로 업그레이드합니다.
  • 방법 B: 현재 AGP 버전을 유지하고 아래 설정을 추가합니다.
3단계: 클린 빌드
설정을 변경한 후 앱을 클린 빌드해 주세요.
4단계: 16KB zipalign 적용 확인
빌드된 APK가 16KB zipalign으로 패키징되었는지 확인해 주세요.

경고 대상 라이브러리 확인 방법

경고 C는 Airbridge SDK뿐 아니라 앱에 포함된 다른 SDK의 네이티브 라이브러리 때문에 표시될 수도 있습니다. Play Console 경고에 표시된 .so 목록에서 아래 파일이 포함되어 있는지 확인해 주세요.
  • Airbridge SDK 네이티브 라이브러리: libairbridgelib.so
목록에 Airbridge 라이브러리가 없다면, 다른 SDK의 라이브러리가 원인입니다. 해당 SDK 제공사에 NDK r28 이상으로 빌드된 버전이 있는지 문의해 주세요.라이브러리를 빌드한 툴체인 버전은 NDK에 포함된 llvm-readelf로 확인할 수 있습니다.

자주 묻는 질문

Q. 경고 C가 표시되면 앱 업로드가 차단되나요?현재 경고 C는 Play Console의 기술 품질 권고로 표시되며, 업로드는 가능합니다. 다만 Google Play는 2027년 2월 1일부터 16KB 페이지 크기를 지원하지 않는 앱 업데이트의 출시를 차단할 예정이므로, 미리 권장 버전으로 업데이트해 주세요.Q. 경고 B 또는 C가 표시된 상태에서 앱 동작에 영향이 있나요?
  • 경고 B: 앱 동작에는 영향이 없습니다. 16KB 페이지 크기 기기에서도 앱이 정상 동작합니다.
  • 경고 C: 경고 해소를 위해 v4.12.0 이상으로 업데이트를 권장합니다.
Q. Android Studio lint나 APK Analyzer에서도 경고가 표시됩니다.Android Studio lint, APK Analyzer, check_elf_alignment.sh 등 정렬 검사 도구에서도 같은 원인으로 경고가 표시될 수 있습니다. 위 해결 방법에 따라 권장 버전으로 업데이트하면 해소됩니다.