개발자
iPad에서 App Store 대신 데스크톱 페이지가 뜨는 이유는?
iPadOS 13부터 iPad의 Safari는 자신을 Mac이라고 밝힙니다. 기기별 리디렉션이 iPad를 놓치는 이유와 잡아내는 방법을 정리합니다.
짧은 답변
iPadOS 13부터 iPad의 Safari는 데스크톱 웹사이트를 요청하고 Mac의 User-Agent(“Macintosh; Intel Mac OS X 10_15_7”)를 보내므로, “iPad”를 찾는 리디렉션은 iPad를 컴퓨터로 취급합니다. 서버에서는 둘을 구분할 수 없습니다. 브라우저에서는 navigator.maxTouchPoints가 1보다 큰 Mac User-Agent가 iPad입니다. OneStoreLink(onestore.link)는 이런 iPad를 컴퓨터용 페이지로 보내며, 그 페이지의 App Store 버튼으로 한 번만 탭하면 스토어에 닿습니다.
최종 검토일: 2026-11-03
iPhone은 App Store로, Android 휴대폰은 Google Play로 보내는 링크를 만들었고 테스트한 모든 휴대폰에서 잘 작동했는데, iPad 사용자가 데스크톱 페이지에 도착합니다. 코드가 틀린 것이 아닙니다. iPad가 일부러 자신의 정체를 속인 것입니다. Apple이 iPad에서 데스크톱과 같은 완전한 웹사이트를 보여 주고 싶어 했기 때문입니다. 이 가이드는 iPad가 무엇을 보내는지, 왜 서버가 이를 간파할 수 없는지, 브라우저에서 어떻게 감지하는지, 그리고 스토어 리디렉션이 iPad를 어떻게 처리해야 하는지 설명합니다.
문제
- iPadOS 13부터 iPad의 Safari는 기본적으로 데스크톱 웹사이트를 요청하며 Mac의 Safari와 같은 User-Agent를 보냅니다.
- User-Agent에 대한 /iPad|iPhone/ 같은 검사는 절대 일치하지 않으므로 iPad는 컴퓨터로 취급됩니다.
- 서버에는 그 밖에 판단할 근거가 없습니다. 데스크톱 모드의 iPad 요청은 Mac의 요청과 똑같아 보입니다.
- 컴퓨터용 분기가 스토어 버튼이 없는 웹 페이지만 보여 준다면, iPad 사용자는 설치할 수 있는 앱을 바로 앞에 두고 막히게 됩니다.
onestore.link와 함께
- 브라우저에서는 터치 포인트가 둘 이상인 “Macintosh” User-Agent를 iPad로 취급하세요. Mac에서 navigator.maxTouchPoints는 0입니다.
- 서버에서는 컴퓨터용 분기를 무해하게 만드세요. 두 스토어 버튼이 모두 있는 페이지로 하고, 버튼이 없는 페이지는 절대 쓰지 마세요.
- onestore.link는 서버에서 판단합니다. 일반 브라우저에서 iPhone과 iPad User-Agent는 곧바로 App Store로, Android는 Google Play로 가고, 그 밖의 모든 경우(데스크톱 모드의 iPad 포함)에는 두 스토어 버튼과 QR 코드가 있는 페이지가 표시됩니다.
- 그 페이지의 App Store 버튼은 iPad 자체에서 App Store를 열기 때문에, 방문자는 한 번의 탭으로 설치에 이를 수 있습니다.
방법
SDK도, 재빌드도 없습니다. URL 하나면 됩니다.
- 1
브라우저에서 iPad 알아보기
리디렉션이 JavaScript로 실행된다면 User-Agent 검사에 터치 검사를 추가하세요. Mac은 터치 포인트를 둘 이상 보고하지 않지만 iPad는 보고합니다.
// iPadOS 13+: iPad의 Safari는 Mac User-Agent를 보고함 const ua = navigator.userAgent; const isIOS = /iPad|iPhone|iPod/.test(ua) || (/Macintosh/.test(ua) && navigator.maxTouchPoints > 1); const isAndroid = /Android/i.test(ua); - 2
컴퓨터용 분기에 두 스토어 버튼 모두 넣기
서버 측 리디렉션은 그 검사를 실행할 수 없으므로, “컴퓨터”에 보여 주는 페이지를 일부 iPad도 보게 됩니다. 그 페이지에 App Store 버튼과 Google Play 버튼을 넣고, 실제 데스크톱을 위한 QR 코드도 추가하세요.
- 3
또는 라우팅을 onestore.link에 맡기기
두 스토어 URL로 onestore.link를 만드세요. 휴대폰은 서버에서 리디렉션되고, 그 밖의 모든 방문자(데스크톱 모드의 iPad 포함)는 두 버튼과 QR 코드가 있는 페이지를 받습니다. 관리할 코드가 없습니다.
자주 묻는 질문
iPad는 왜 Mac User-Agent를 보내나요?
iPadOS 13부터 iPad의 Safari는 기본적으로 웹사이트의 데스크톱 버전을 요청하며, 그것을 받기 위해 macOS의 Safari라고 자신을 밝힙니다. 사용자가 사이트를 모바일 버전으로 되돌릴 수 있지만 대부분은 그렇게 하지 않습니다.
데스크톱 사이트를 요청하는 iPad를 서버에서 감지할 수 있나요?
확실하게는 불가능합니다. User-Agent가 Mac과 같고, 터치스크린을 드러내는 요청 헤더도 없습니다. 감지하려면 페이지 안의 JavaScript가 필요한데, 단순한 302 리디렉션은 이를 실행하지 않습니다.
navigator.maxTouchPoints 하나만으로 충분한가요?
User-Agent와 함께 사용하세요. navigator.maxTouchPoints가 1보다 큰 “Macintosh” User-Agent는 iPad입니다. 단독으로 쓰면 터치스크린이 있는 Windows 노트북도 일치하게 됩니다.
onestore.link를 쓰면 iPad 사용자에게 무엇이 보이나요?
Safari의 기본 데스크톱 모드에서는 컴퓨터용 페이지가 보입니다. 앱 이름과 아이콘, App Store 버튼, Google Play 버튼, QR 코드입니다. App Store를 탭하면 iPad에서 App Store가 열립니다. 브라우저가 iPad User-Agent를 보내는 iPad는 곧바로 App Store로 리디렉션됩니다.
사용해 볼 준비가 되셨나요?
영원히 무료이고 비밀번호도 필요 없습니다. 약 1분이면 링크가 준비됩니다.
무료 링크 만들기도구를 비교하고 계신가요? onestore.link vs onelink to →