# 이벤트 상세 OneLink SDK 검증 게이트 ## 1. 검토 정보 - 일자: 2026-10-29. 대상: P1-T1/P1-GATE, 제품 구현 전 feasibility 확인. - 기준: [PRD](../prd.md), [계약](../api-contract.md), [계획](../plan-task.md). - 검토자: 독립 SDK 검증 에이전트 및 Sisyphus 근거 확인. - 판정: **BLOCKED**. 제품 기능 미완료이며 불가능하다고 단정한 결과는 아니다. ## 2. 목적과 범위 앱 내부에 이미 보유한 short/long HTTPS OneLink를 기존 UDL과 공존하는 SDK 경로로 해석할 수 있는지 확인한다. 일반 푸시의 공식 SDK 경로와 URI parser는 별개이며, 이 결과만으로 앱 코드 구현을 시작하지 않는다. ## 3. 판정 기준 공개 지원 계약 또는 안전하게 검증된 실제 SDK 동작으로 URL 입력, callback, `deep_link_value`/`deep_link_sub5` 반환을 입증해야 한다. query-only 파싱, 가짜 push attribution, SDK와 무관한 callback 모형은 증거가 아니다. ## 4. 확인한 근거 - 설치 xcframework의 iOS artifact `CFBundleVersion`: **6.17.5**. `CFBundleShortVersionString=1.0`은 SDK 버전이 아니다. - `AppsFlyerLib.h:623-629`: `performOnAppAttributionWithURL:`은 `onAppOpenAttribution`을 강제 호출하며 OneLink/UniversalLink/Deeplink를 해석한다. re-engagement/session/launch는 집계하지 않는다고 명시한다. - 같은 헤더: UDL callback `didResolveDeepLink`(167행), `deepLinkDelegate`(331행), `continueUserActivity`(578-584행), `handlePushNotification`(587-595행), `addPushNotificationDeepLinkPath`(747-752행). - 바이너리 SHA-256: `1d9e5d9b5b30e0436e602a0e5f8be8b49cadf21ef39b7a7f9ea45a4689aab5f7`. - 헤더 SHA-256: `83dff1f888b5d75f2cdef81fcc2770a968e2c51633c652d6a91b50d9afc76eb6`. 공식 근거: - [SDK URL resolver](https://dev.appsflyer.com/hc/docs/ios-sdk-reference-appsflyerlib#performonappattribution) - [앱 실행과 무관한 수동 attribution callback](https://dev.appsflyer.com/hc/docs/ios-sdk-reference-appsflyerlibdelegate#performonappattribution) - [Legacy short/long 링크 흐름](https://dev.appsflyer.com/hc/docs/dl_ios_gcd_legacy) - [UDL 콜백과 전달 계약](https://dev.appsflyer.com/hc/docs/dl_ios_unified_deep_linking) ## 5. 실행한 확인과 발견 사항 공개 계약 조사에서 URL-only legacy resolver는 확인했다. 그러나 `deepLinkDelegate`를 함께 설정한 현재 구성에서 수동 resolver가 어떤 callback을 보장하는지는 확인되지 않았다. 일반적인 legacy/UDL 콜백 배타성만으로 수동 API의 실제 동작을 단정하지 않는다. 두 번째 접근으로 `/usr/bin/sandbox-exec -p '(version 1) (allow default) (deny network*)' /usr/bin/true`를 실행해 exit 0을 확인했다. 이는 실제 iOS SDK 프로세스 및 위임된 네트워크 작업의 fail-closed 격리 증거가 아니므로 SDK 실행은 하지 않았다. SDK/앱 자격증명 로드, 시뮬레이터 생성, OneLink 해석 요청은 없다. ## 6. 재개 조건 AppsFlyer에 다음 지원 계약을 확인하거나, 별도 승인된 제한적 실제 SDK 검증으로 공존 동작을 확인한다: > iOS SDK 6.17.5에서 deepLinkDelegate가 설정된 상태로 performOnAppAttribution(with:)를 호출하면 어떤 callback이 보장되는가? short/long HTTPS OneLink의 deep_link_value/deep_link_sub5 반환 및 re-engagement/session/launch 미집계 계약이 유지되는가? ## 7. 계획 전환 및 종료 Phase 2/3은 차단 유지. 지원되지 않은 메서드, 합성 activity, SDK 교체/업그레이드를 추정 적용하지 않는다. 실제 SDK callback과 전달은 미검증이며, 후속 허용 범위가 결정되기 전 제품 코드 작업을 중단한다.