상황은 이랬다.
다이나믹링크를 통해서 해당 앱이 있는 경우는 앱으로 이동하고, 없다면 앱스토어의 앱 페이지로 이동해야 한다.
하지만 이상하게도 앱이 없는 경우에 특정 버전의 특정 폰에서만 "앱스토어에 연결할 수 없음" 이라는 에러가 떴다.
Xcode의 에러 코드는
Error Domain=NSOSStatusErrorDomain Code=-10814
구글에 나온 해결 방법대로
앱스킴 등록 여부를 의심하기엔 다른 폰에서는 잘 되서 한참을 헤매다가 전달받은 링크를 의심했다.
전달받은 링크는 이렇게 생겼고
http://itunes.apple.com/kr/app/id123456789?mt=8
앱스토어에서 공유하기를 눌러 링크를 보면
https://apps.apple.com/kr/app/kb-pay/id123456789
이렇게 나온다.
첫번째 링크는 이미 오래전 지원이 중단된 iTunes와 연결된 비보안 프로토콜(Http) 방식이고
두번째 링크는 보안 프로토콜(Https) 방식이다.
링크를 바꿔주니 아주 잘 된다.
테스트는 iOS 15, 16, 17 그리고 18 Beta 버전에서 진행했고 iOS 16에서만 해당 문제가 발생했다. 정확한 원인은 알 수 없지만 해결 방법은 알았으니 누군가에게 도움이 되길 바라며 작성했다.