flutter 앱 내에서 nfc 태깅을 사용하는 회사앱을 개발 중 nfc_manager 3.5.0 라이브러리를 사용하고 있는데 갑자기 안된다.
어떻게?
그냥 안된다..... 반응이 없다. 폰을 껏다 켜봐도 반응이 없다.
여러가지로 테스트를 해봤는데 이상한 점을 발견했다.
이상한 점
1. 앱 내부에서만 안됨
2. 다른 기기도 동일 (S24, 갤럭시 폴드4)
3. 앱 실행 전 화면에서는 태깅 정삭 인식
4. Flutter 소스코드나 모듈업데이트 등 수정한 항목은 전혀 X
GPT한테 물어봤다.
계속 비슷한 말만 반복하는데
그만 알아보도록 하자 ^-^....

그러다 문득 생각 난게 있었다.
ios 앱 내에서는 태깅을 하려면 반드시 아래 사진처럼 스캔 준비 완료 가이드 창이
필수로 떠야 하는데 이 창을 뜨게 하려면 pollingOptions(태깅 호환 타입 정의)에서
iso18092, iso15693 2개를 추가 해야 떴었다.
대표적인 iso 옵션은 아래와 같다
대표적인 iso 옵션
NfcPollingOption.iso14443 | 교통카드, 신용카드 등에 많이 사용됨 (MIFARE, Type A/B) |
NfcPollingOption.iso15693 | 장거리 NFC 태그 (산업용) |
NfcPollingOption.iso18092 | P2P 통신용 (예: 안드로이드 빔) |
아무튼 iso가 어떤 항목들이 있는지 상세 연결 코드에 들어가 보니 아래와 같은 옵션 3개가 있었다
여기서 사용 되지 않은 태깅 iso 번호를 속는 셈 치고 한개 추가 해보았더니 갑자기 인식이 되었다.
iso14443
원인은 정확하게 모른다.
해당 라이브러리 깃허브 사이트에 올라온 공식적인 이슈는 아직까진 없다.
그런데 문제가 아이폰으로 와서 빌드를 하면 저 iso14443 때문에 태깅 가이드가 안뜨는 어이없는 문제가 발생하여
Platform별로 pollingOptions를 다르게 주는 방식으로 변경 하였다.
아무래도 삼성의 OneUI를 업데이트 하면서 무슨 문제가 발생 한 것 같은데
정확한 건 아직 밝혀진 게 없다.
3줄 요약
1. 갤럭시 S23이상 (Android 13, API 33) 에서 태깅 무반응 오류 발생
2. 자신의 코드에서 pollingOptions에서 iso 14443,15693, 18092 3개중 한개라도 없는게 있으면 추가
3. 태깅 성공
