Releases: whatap/WhatapIOSAgent-Release
Release list
v2.7.15
무엇이 바뀌었나
- 샘플링 설정이 실제로 적용됩니다.
setSamplingRate로 지정한 비율대로 수집됩니다. - 세션 최대 지속 시간이 30분에서 4시간으로 바뀌었습니다. 15분 무작동 만료는 그대로입니다.
앱을 다시 실행하면 새 세션이 발급됩니다. - 설치형 전용으로
setSingleSessionPerLaunch(_:)를 추가했습니다. 기본값은false입니다. - 자체 화면 추적을 구현한 앱을 위해
notifyUserActivity()를 추가했습니다. - 잡히지 않은 Objective-C 예외의 사유가 크래시 리포트에 남습니다.
적용
코드 변경 없이 파일만 교체하면 됩니다. 늘어난 공개 API 는 위 두 개이고 기존 코드는 그대로 동작합니다.
.package(url: "https://github.com/whatap/WhatapIOSAgent-Release.git", exact: "2.7.15")알아두실 것
수집되는 세션 수가 달라집니다. 샘플링을 설정한 프로젝트는 설정값대로 줄고, 세션 최대 지속 시간이 늘면서 장시간 사용이 한 세션으로 합쳐지며, 앱을 다시 실행할 때마다 새 세션이 발급됩니다. 세션 수로 과금되는 프로젝트는 적용 전에 확인하세요.
전송 필드와 옵션 기본값은 바뀌지 않았습니다.
파일
- 최소 iOS 15.0
- SHA256
12ef7ebaa45508c32fdcb95df83d2705462d5cc4e8ca1e6f8f65e95a7565d1e8 - 직접 다운로드
v2.7.14
v2.7.14 (2026-09-09)
Fixed
- App Store Connect 업로드 검증 실패 수정. v2.7.12 · v2.7.13 의
WhatapAgent.frameworkInfo.plist 에CFBundleVersion이 없어, 해당 버전을 임베드한 앱의 업로드가Validation failed (409) ... The Info.plist file is missing the required key: CFBundleVersion으로 거부됐습니다. v2.7.14 는 이 키를 포함합니다.
v2.7.12 · v2.7.13 사용 중지 안내
두 버전을 임베드한 앱은 App Store Connect 업로드가 거부됩니다. v2.7.14 이상을 사용해 주세요.
런타임 동작·수집 항목·전송 형식에는 영향이 없으며 업로드 단계에서만 발생합니다.
Compatibility
- Drop-in — 코드 변경 불필요, xcframework 파일 교체만으로 적용.
- 공개 API·데이터 형식·옵션 기본값·런타임 동작 변경 없음 (v2.7.10 ~ v2.7.13 과 동일). 최소 iOS 15.0.
SHA256 193c78e7d5bbd62fd052834cc6886e6b4d875785cd9cbf2c5811e88a2c6e18a8
v2.7.13
사용 중지 안내 — 이 버전의
WhatapAgent.frameworkInfo.plist 에CFBundleVersion이 누락되어, 임베드한 앱의 App Store Connect 업로드가 거부됩니다 (Validation failed (409)). v2.7.14 이상을 사용해 주세요.
v2.7.13 (2026-09-04)
Fixed
- ScreenGroup 종료 타이머 크래시 수정. 크래시 스레드가
com.whatap.screengroup이고 스택이__CFRunLoopTimerDeallocate를 지나는 크래시가 더 이상 발생하지 않습니다. 앱에서 ScreenGroup API 를 직접 사용하지 않아도 해당됩니다. 화면 전환과 WebView 활동이 잦은 앱에서 발생 빈도가 높았습니다.
Changed
- ScreenGroup 종료·전송 시점이 스크롤 중에도 지연되지 않습니다. 스크롤이 많은 화면에서 ScreenGroup 의 종료 시각과 duration 분포가 이전보다 짧고 일정하게 나올 수 있습니다. 수집 항목과 전송 형식은 그대로입니다.
Compatibility
- Drop-in — 코드 변경 불필요, xcframework 파일 교체만으로 적용.
- 공개 API·데이터 형식·옵션 기본값 변경 없음 (v2.7.10 ~ v2.7.12 와 동일). 최소 iOS 15.0.
SHA256 4fc4a8944d7675fbeeb85b5aba29ba6551300be9c4a061999811462c48a43709
v2.7.12
사용 중지 안내 — 이 버전의
WhatapAgent.frameworkInfo.plist 에CFBundleVersion이 누락되어, 임베드한 앱의 App Store Connect 업로드가 거부됩니다 (Validation failed (409)). v2.7.14 이상을 사용해 주세요.
변경
- 최소 지원 iOS 를 15.0 으로 낮췄습니다.
- SPM 매니페스트의
platforms를 iOS 15 로 맞췄습니다.
호환성
- Drop-in — 코드 변경 없이 xcframework 교체만으로 적용됩니다.
- 공개 API 변경 없음 (공개 심볼 1,356개 동일).
- 런타임 동작 변경 없음.
빌드
- Xcode 26.3 / iOS 26.2 SDK / Swift 6.2.4
WhatapAgent.xcframework.zipsha256:727ed3235462ca3c590facc9dd059071baef84942696696488f60713c4e19cbc
v2.7.11 — WebView 브릿지 데이터 유실 4건 + 호스트 앱 크래시 위험 3건
Drop-in 교체 — 코드 변경 불필요. 공개 API 표면은 2.7.10 과 동일합니다 (.swiftinterface byte-identical, 심볼 1356개 동일).
Fixed — WebView 브릿지 데이터 유실 4건
- 브릿지 데이터 전량 폐기 해소: 브라우저 에이전트 payload 의
meta.pCode/meta.projectAccessKey가 웹 프로젝트 값 그대로 올라가 모바일 인그레스가 전량 폐기하던 이슈. 서버가 HTTP 200 + 본문 에러(<pcode> has deleted.) 로 응답해 흔적 없이 유실됐습니다. camelCase 키를 존재할 때만 override 하도록 변경 (AndroidreplaceMetaFields정합). 통짜 merge 가p_platform: W_IOS를ios로 오염시키던 부수 회귀도 정정. - Web Vitals 전량 유실 해소: 업로드 경로를
/webVitals_v2→/v2/webVitals로 교정 (기존 경로는 서버에 없어 404). 브릿지 method 이름webVitals_v2는 브라우저 에이전트와의 계약이라 유지합니다. endScreenGroup고아 업로드 라인 제거: ScreenGroup 종료 payload 가/v2/webVitals로 함께 올라가 Web Vitals 를 오염시키던 문제.- 업로드 큐 수명 창 제거: 전송 중 들어온 청크가 닫힌 배열 뒤에 이어붙어 깨진 JSON 이 전송되거나 조용히 유실되던 구조를 스왑 방식으로 변경.
Security / Stability — 호스트 앱 크래시 위험 3건
repackV2SessionReplay의JSONSerializationNSException 을WhatapExceptionGuard로 차단 (Swifttry?/catch로는 잡히지 않아 호스트 앱을 죽일 수 있었습니다).- 누적 업로드 큐 상한 16MB 도입 — 대량 발신 시 버퍼가 부풀어 호스트 앱이 OOM 으로 강제 종료되는 것을 방지.
WhatapLogger.adapters데이터 레이스에NSLock도입 (isDebug == true인 세션에서만 발화하던 조건).
대시보드 영향
그동안 폐기되던 WebView 브릿지 데이터(onError / pageLoad / routeChange / event / resource / webVitals / sessionReplay)가 새로 적재되기 시작합니다. WebView 지표가 0 이었던 프로젝트는 값이 올라옵니다.
산출물
| zip sha256 | d1c4b13b4300314bfc78723c02aa576588ba7b6fdf5cea0b5a7bb3d889beead8 |
| 다운로드 | https://repo.whatap-mobile-agent.io/uploads/2.7.11/WhatapAgent.xcframework.zip |
| 툴체인 | Xcode 26.3 (17C529) / iphoneos26.2 SDK / Swift 6.2.4 |
| 지원 | iOS 15.6+ (ios-arm64, ios-arm64_x86_64-simulator) |
v2.4.3 - getTopViewController Crash Hotfix
🔴 Critical Hotfix — Infinite Recursion Crash
Fixes stack overflow crash reported in WKWebView + SPA environments (React, Vue, Angular 등).
Root Cause
UINavigationController.visibleViewController가 다음 상황에서 nil을 반환:
- 빈 NavigationController (
viewControllers.isEmpty) - Push/pop 애니메이션 transition 중간 상태
- 빈 modal이 상위 nav에 present된 순간 (nil 전파)
기존 getTopViewController는 종료 조건 없이 재귀하여 nil을 계속 전달 → connectedScenes를 재호출 → 동일한 nav 반환 → 무한 재귀 → EXC_BAD_ACCESS (stack overflow).
Fix — 3-Layer Defense
| Layer | 방어 대상 |
|---|---|
| 1. Depth limit (20) | 모든 형태의 과도한 재귀 |
| 2. Cycle detection | ObjectIdentifier Set 기반 순환 감지 |
| 3. Nil-safe traversal | 빈 nav 즉시 반환 (이번 버그 직격) |
Verification
WebViewStressApp T10 시나리오로 재현 및 검증:
- Before: depth=200 overflow=true (crash)
- After: depth=1 overflow=false ✅
Modified Files
exporter/WhatapSpanProcessor.swiftinstrumentation/screen/ScreenLoadTracerEnhanced.swiftWhatapIOSAgent.swift
Artifact
- XCFramework:
https://repo.whatap-mobile-agent.io/uploads/2.4.3/WhatapAgent.xcframework.zip - Checksum (SHA-256):
a5118aa2014642d2837b4370fa7892d77ec58d626cca665c01a81fc6283e9f72
Upgrade
.package(url: "https://github.com/whatap/WhatapIOSAgent-Release", .upToNextMajor(from: "2.4.3"))추가 권장: WebView 사용 시 setupWebViewBridge 설정으로 호출 빈도 감소 → 추가 안전성 확보.
WhatapAgent v2.3.0 - Crash Fix Release
🚨 Critical Crash Fix Release
✅ Fixed Issues
- Crash in Log Export: Fixed crash in
WhatapLogHttpExporter.convertLogsToJson() - Crash in Span Export: Fixed crash in
WhatapSpanHttpExporter.convertSpansToJson()
🔧 Improvements
- Added comprehensive error handling with try-catch blocks
- Safe handling of empty MetricsSampler arrays
- Individual span/log processing with compactMap for fault isolation
- JSON serialization validation
📦 Installation
Swift Package Manager
dependencies: [
.package(url: "https://github.com/whatap/WhatapIOSAgent-Release.git", from: "2.3.0")
]Direct Download
curl -L -o WhatapAgent.xcframework.zip https://repo.whatap-mobile-agent.io/uploads/2.3.0/WhatapAgent.xcframework.zip📊 File Information
- Version: 2.3.0
- Build Date: 2025-12-01
- File Size: 2.0 MB
- MD5 Checksum: 8b26bbbc3493b973c122c68d862126fe
🔍 Download URLs
1.0.0
fix: Update XCFramework checksum to match actual CloudFront binary - Old checksum: 8986441fdfc1615c0aa7ad704f19b8d0aa94ff5aa8d7ec7f1c30edb4ef758ac8 - New checksum: f745a1ef2e360ddcb734e8aa08af8b9567d32ab3a0b6c340d95bf24894785909 - Verified: Swift Package Manager successfully resolves with new checksum - Tested: XCFramework download and structure validation passed