아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
지마켓 favicon지마켓

iOS 광고 트래킹, URL 요청 검증, 이제 걱정 끝!

by DD
2025-01-06
1년 전
조회수 10

URLProtocol을 활용하여 광고 이벤트 발생 시 URL 요청을 가로채는 Proxy 구현

UITest를 통해 실제 사용자 환경과 유사하게 광고 이벤트 트리거 및 URL 요청 검증

Fake 객체 및 launchEnvironment를 활용하여 테스트 데이터 유연성 확보

URLProtocol을 활용한 트래킹 요청 가로채기

URLProtocol을 상속받아 CustomURLProtocol을 구현하여, 광고 트래킹 URL 요청을 가로챈다. 구체적으로, startLoading() 메서드를 오버라이드하여 URL을 저장소에 저장하고, 임의의 응답을 반환한다. 따라서, 실제 네트워크 요청을 검증하고, 광고 트래킹 데이터의 정확성을 확보한다.

UITest와 공유 저장소를 활용한 검증

UITest 환경에서 accessibilityIdentifier를 활용하여 UI 요소를 찾아 광고 이벤트를 트리거한다. 반면, App과 UI Test 간 데이터 공유를 위해 SIMULATOR_SHARED_RESOURCES_DIRECTORY를 활용한 공유 저장소를 사용한다. 따라서, 실제 사용자 환경과 유사한 환경에서 URL 요청 여부를 검증한다.

Fake 객체와 launchEnvironment를 이용한 테스트 데이터 관리

테스트 케이스별로 다른 JSON 데이터를 사용하기 위해, Fake 객체와 launchEnvironment를 활용한다. 구체적으로, SearchResultRepository 프로토콜을 정의하고, 실제 구현체와 Fake 구현체를 분리한다. 따라서, 테스트 데이터의 유연성을 확보하고, 테스트 코드의 유지보수성을 향상시킨다.

iOS에서 이벤트 기반 URL 요청이 잘 전송되는지 확인하기 (feat. 광고 트래킹.. 제대로 가고 있나요?)
중급
아키텍처
iOS
URLProtocol
UITest
Swift
Mobile
Backend
Frontend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

LINE iOS, AttributedString으로 설정 시스템 대규모 리팩터링 성공!

라인 로고

Flutter로 iOS 게임 'Midsommer Madness' 출시!

데브투 로고

맥도날드, iOS Live Activities로 대기 시간 '순삭'

맥도날드 로고

Imajourn iOS 앱 출시!

프로덕트 헌트 로고

올리브영 iOS 개발자가 말하는 개발자 모드 구축 비법!

올리브영 로고

iOS 탈옥, 앱 보안의 그림자를 파헤치다!

NHN클라우드 로고
지마켓 favicon지마켓
중급
아키텍처
iOS
URLProtocol
UITest
Swift
Mobile
Backend
Frontend

관련 추천 글

LINE iOS, AttributedString으로 설정 시스템 대규모 리팩터링 성공!

라인 로고

Flutter로 iOS 게임 'Midsommer Madness' 출시!

데브투 로고

맥도날드, iOS Live Activities로 대기 시간 '순삭'

맥도날드 로고