시나리오 : iOS 나 AOS 나 강제 업데이트 지원에 대한 니즈가 항상 있고, 하지만 이런 프로세스 자체가
애플의 앱스토어나 구글의 플레이스토어가 권장하는 방식이 아니지만 이 니즈를 최대한 만족시켜보려고 함
이전 포스팅의 연장선이지만
https://artieee.tistory.com/16
https://artieee.tistory.com/13
강제업데이트 앱버전 비교하기와도 관련이 있는 글이라 한번 읽어보고 오시는 것도 추천드림 👍 🥳
앞선 포스팅에서 사용자가 어플을 실행시켜서 업데이트 팝업을 클릭하고 앱스토어로 들어갔을 때 앱스토어의 캐시(업데이트가 안되어 있는 상황)로 인해 업데이트 버튼이 안 보이는 현상을 최소한으로 줄이기 위해서 개발자는 고민에 빠짐.
그러다가 이런 생각을 하게 됨
아니 그러면 앱을 실행시킬 때 앱스토어에서 강제업데이트 버전 (최소 지원 버전)의 앱이 출시되었느지 확인 먼저 해보면 안 됨?
그렇다! 그렇게 검색을 해보니 iTunes Search API에 "Lookup" 이 있는 것을 발견함.
http://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/
사용법:
https://itunes.apple.com/lookup?bundleId={#bundleId}
https://itunes.apple.com/kr/lookup?id={#appID}
Search API는 검색 결과를 JSON 형식으로 반환해 줌. 여기서 해당 [앱 ID / 번들 ID]의 해당하는 앱의 정보를 확인할 수 있음.
{
"resultCount" : 1 ,
"result": [
....
"bundleId" : {#bundleID},
"version" : {#version} ,
...
]
}
Apple에서 제공하는 "loopup" API를 활용한다면
1. 앱을 실행시키고 서버에서 확인하는 앱의 최소 버전을 확인하고 강제 업데이트가 필요하다면,
2. 이때 바로 팝업을 띄우는 게 아니라 loopup API를 먼저 호출해서 스토어에 배포가 되어 있는지 확인을 한번 해보고 만약에 해당 버전이 확인이 된다면 업데이트 팝업을 띄워주는 것이다.
마무리
- 이와 같은 상황에서 100퍼센트 완벽하다고는 볼 수는 없지만 그래도 상이한 가능성이 더 적어짐으로 인해서 그 확률을 최소한으로 줄여나가는 것이 개발자의 또 하나의 역할인 거 같음. 개인적인 성향으로는 이런 일들을 찾고 개선하면서 뿌듯하기도 하고 보람을 느끼기도 함.
참고사이트 : 예전 문서 사이트 같음.
[ios network link conditioner] 네트워크 속도 테스트 해보기 (2) | 2023.10.11 |
---|---|
Elvis Operator in Swift (0) | 2023.08.14 |
[Swift tips] 지금 바로 적용해보는 Swift 최적화 팁! (0) | 2023.08.09 |
[Swift+UIKit+Code base UI] 코드베이스 UI에서 Preview 보는 방법 (0) | 2022.04.10 |
[Tricks&Tips]강제업데이트 앱버전 비교하기 & 앱 업데이트 새로고침 하는 방법-01 (0) | 2022.02.21 |
댓글 영역