Programer/iOS

[Tip] iOS 기기 고유 식별 값을 사용하고 싶을 때 (UUID, App Groups)

아즈샤 2017. 11. 6. 18:08
반응형

iOS 기기 고유 식별 값을 알고 싶을 때, 대부분 UUID를 이용하여 사용합니다.


하지만 UUID의 경우, 앱을 재설치하면 변경되므로 문제가 발생합니다.


그때 쓸만한 라이브러리가 TAKUUID입니다. 


https://github.com/taka0125/TAKUUID


키 체인을 이용해서 앱 삭제후 재설치 해도 초기 설정 되었던 UUID 값을 사용 할 수 있습니다. (자세한 것은 Read Me 참고)




하지만 만약 같은 API를 사용하는 경우, 예를 들면 앱A와 앱B가 있는데 A, B가 같은 로그인 API를 사용한다면 A, B 의 UUID 가 서로 다르므로 문제가 생길 수 있습니다.


이 문제를 해결할 여러가지 방법이 있겠지만 저는 App Groups 로 해결 했습니다.


만약 그룹안에 앱이 있다면 거기서 사용한 UUID를 UserDefault로 전달 받아 사용하고, 만약 없을 경우에만 생성하여 사용하는 방법입니다.


App Groups 사용 방법은 아래 사이트를 참고하시면 됩니다.


https://stackoverflow.com/a/31927904


단, A, B 앱이 모두 삭제 하고 재설치 하는 경우에는 재갱신이 필요합니다.

case 1) A 설치, 로그인 -> B 설치, 로그인 -> A 삭제 -> B삭제 -> A 설치, 로그인 (문제 없음)

case 2) A 설치, 로그인 -> B 설치, 로그인 -> A 삭제 -> B삭제 -> B 설치, 로그인 (TAKUUID에서 재갱신 됨)


App Group으로 해결하는 방법도 있지만 identifierForVendor를 이용하며 좀 더 편하게 설정할 수 있습니다 :)


identifierForVendor의 경우에는 같은 공급자의 앱들은 동일한 식별 값을 같습니다.


App Group는 앱 끼리 데이터를 공유할 때 사용하는 것이 더 좋습니다 ㅎㅎ


반응형