프론트엔드
iOS에서 이벤트 기반 URL 요청이 잘 전송되는지 확인하기 (feat. 광고 트래킹.. 제대로 가고 있나요?)
두줄요약
iOS에서 광고 트래킹 URL 요청이 실제로 전송됐는지 검증하는 방법을 정리했습니다. URLProtocol과 공유 파일 저장소, UI Test 환경 변수를 활용해 요청 가로채기와 데이터 주입을 구현했습니다.
문제 상황
- iOS에서 광고 트래킹용 이벤트가 실제 URL 요청까지 정상 전송되는지 배포 전 검증 필요
- 기존 Fake 객체 방식으로는 함수 호출 여부만 확인되어 실제 네트워크 요청 검증 불가
- UI Test는 별도 프로세스로 실행되어 App의 메모리 저장소 공유 불가
해결 방법
URLProtocol서브클래스로 요청을 가로채는CustomURLProtocol구현startLoading()에서 요청 URL을 공유 파일 저장소에 기록하고 임의 응답 반환SIMULATOR_SHARED_RESOURCES_DIRECTORY기반 파일 저장소를 App과 UI Test가 함께 사용XCUIApplication.launchEnvironment로 테스트별 가짜 JSON 데이터를 주입
적용해볼 점
- 트래킹 검증은 호출 여부가 아니라 실제 요청 결과를 기준으로 확인
- UI Test와 공유 가능한 저장소 설계로 App/테스트 간 상태 분리 문제 완화
- 테스트 데이터는 환경 변수로 주입해 시나리오별 분기 관리