혹시 expo sdk 35버전 사용해보신 분 계신가요?

https://docs.expo.io/versions/latest/sdk/application/

  1. 35버전에서 ‘expo-application’ 추가되었던데 문서 확인해 본결과
    ios는 Application.getIosIdForVendorAsync() android는 Application.androidId
    이걸 갖고 오더라구요. 이거 혹시 react-native-device-info처럼
    기가값이거나 고유값으로 사용해도 되는지요? 로그에 값을 확인했고 기기마다 값이 다르긴 하더라구요.

  2. 두번째는 혹시나 사용해도 된다면 expo publish로 expo sdk버전 업그레이드 적용도 해주는지요?
    js파일은 적용되는걸 확인하는데 expo sdk업그레이드 하고 publish는 못해봐서요.
    이미 앱스토어,구글플레이이 출시된 상태인데 다시 빌드해서 게시해야 되는지 아니면 expo publish로 해결가능한지 궁금합니다.

다른 커뮤니티에 문의해서 답변이 없어서 여기에 글 올려봅니다.^^
감사합니다.

  1. 기기 고유값이 아닐거예요 구글이나 애플에서는 기기고유값 수집 못하게 되어있습니다. 말씀하신 아이디는 application id 일거예요 어플을 새로설치 하면 바뀌는 아이디 말이죠… 한번 확인해보시고 알려주세요

  2. 소스 관련 부분만 expo publish 업데이트 되는 걸로 알고 있습니다. 스토어에 올라간 앱은 업데이트해야 되는걸로 보입니다. expo ota 문서에 안내가 있을거예요

이해를 돕기 위해 질문을 복사하여 아래 답변을 드리겠습니다.

  1. 35버전에서 ‘expo-application’ 추가되었던데 문서 확인해 본결과
    ios는 Application.getIosIdForVendorAsync() android는 Application.androidId
    이걸 갖고 오더라구요. 이거 혹시 react-native-device-info처럼
    기가값이거나 고유값으로 사용해도 되는지요? 로그에 값을 확인했고 기기마다 값이 다르긴 하더라구요.

    • 내용을 읽어보니 흥미롭네요. 기기값이나 고유값으로 사용하기에는 문제가 있을 수 있을 것 같아요. 같은 vendor는 같은 것으로 인지합니다. com.dooboolab.reactnativecom.dooboolab.react는 동일하다고 합니다. 또한 com.dooboolab관련 모든 앱을 삭제했을 때 그 값이 초기화 된다고 합니다. 이전 유의하시기 바랍니다.
  2. 두번째는 혹시나 사용해도 된다면 expo publish로 expo sdk버전 업그레이드 적용도 해주는지요?
    js파일은 적용되는걸 확인하는데 expo sdk업그레이드 하고 publish는 못해봐서요.
    이미 앱스토어,구글플레이이 출시된 상태인데 다시 빌드해서 게시해야 되는지 아니면 expo publish로 해결가능한지 궁금합니다.

    • expo manifest파일을 수정하는 것이 아니면 publish만으로 업데이트가 가능합니다만 expo upgrade와 같이 native 부분이 수정이 되면 apkipa를 따로 업로드 한 후에 추후 업데이트를 원하실 때 publish를 해야 동작합니다.

두분 감사합니다.
일단 첫번째는 IOS에서는 앱재설치 시 id값이 변경되는걸 확인했고 안드로이드는 재설치시 같은 id값으로 가져오는걸 확인되었습니다. 문서에 따르면 안드로이드는 서명키가 변경됨에 따라 id도 변경된다고 하네요.
두번쨰는 제가 착각하고 있었던것같습니다. build를 하면 자동으로 소스적용 되는줄 알았는데 그게 아닌것 같습니다.
다행히 착오없이 스토어에 업데이트 처리 하였습니다.

감사합니다.

감사합니다.
그럼 1번 같은 경우는 따로 고유번호를 생성해서 앱이 아니라 기기에 저장해서 사용한다거나 그런 방법 없나요?

네 1번 같은 경우 제가 테스트해보니까 님 답변쓰신것처럼 IOS는 값이 다른걸 확인했습니다.
android는 삭제해도 동일한걸로 보이는데 실제 ANDROID_ID랑 똑같은 역할인걸로 보이네요.
서명키가 변경되면 따라서 id도 변경된다고 합니다.
각 기기마다 고유번호로 체크할 방법은 없나요?

ios에서는 이를 제한하려고 대안으로 내놓은 것이 vendor Id입니다. 어떤 목적으로 이게 필요한지 잘 모르겠지만 광고ID를 활용해보는 건 어떨까요? 물론 이것도 사용자가 재설정하면 초기화 되기는 합니다.

로그인할때 제한을 두려고 합니다. 한 계정당 기기 하나에만 등록 할수 있게 하려고 하는데
어쩔수가 없네요. ㅜㅜ 감사합니다.

아하. 혹시 그러시면 push token을 활용해보시는건 어떨까요? 토큰이 갱신되기는 하지만 그게 모니터링이 가능하니 서버에서 기록한 db랑 매칭시켜주면서 고유값을 확인할 수 있을 것 같습니다. 또한 앱이 삭제되었을 때UIApplicationWillTerminateNotification를 통해 기록을 지워줄 수도 있습니다. 안드로이드 경우도 동일합니다. https://support.google.com/calendar/answer/37113?co=GENIE.Platform%3DAndroid&hl=en

참고: 단순 1초 아이디어 입니다.
(정답은 없습니다. 대안이 없으면 최선을 선택하지만 항상 더 나은 practice를 찾아가면서 보완을 하면 좋을 것 같습니다.)

생각해보니 wifi mac 주소도 고유값이긴 하네요

네 감사합니다. 그냥 vendor id로 처리해놓았습니다. expo push token은 재설치하면 바뀌더라구요.
expo에서는 앱 삭제 이벤트 있는지 찾아봐야겠네요.

iOS는 11버전 이후로 WiFi Mac 주소가 바뀝니다.