[ios] iPhone 6 / iOS 8로 NFC 태그 읽기

Apple이 방금 iPhone 6에 NFC 칩이 탑재 될 것이라고 발표 했으므로 iOS 8이 iPhone 6 장치의 RFID 태그를 읽고 감지 할 수 있는지 아는 사람이 있습니까? 누구든지 이것에 대해 공유 할 세부 사항이 있습니까?



답변

iPhone6 ​​/ 6s / 6 +는 수동 NFC 태그 (일명 Discovery Mode)를 읽도록 설계되지 않았습니다. 이 주제에 대한 잘못된 정보가 많기 때문에 개발자가 고려해야 할 실질적인 정보를 제공하려고했습니다. NFC 태그 읽기 지원이 부족한 것은 소프트웨어 때문이 아니라 하드웨어 때문입니다. 이유를 이해하려면 NFC 작동 방식을 이해해야합니다. NFC는 부하 변조를 통해 작동합니다. 즉, 인터로 게이터 (PCD)는 수동 타겟 (PICC)에 에너지를 공급하는 캐리어 자기장을 방출합니다. 이 반송파 필드에 의해 생성 된 잠재력으로 대상은 질문자에서 오는 데이터를 복조하고이 동일한 필드 위에 데이터를 변조하여 응답 할 수 있습니다. 여기서 핵심은 타겟이 자체 필드를 생성하지 않는다는 것입니다.

iPhone6 ​​분해도 및 부품 목록을 살펴보면 매우 작은 NFC 루프 안테나와 AS3923 부스터 IC 있습니다. 이 디자인은 맞춤형 microSD 또는 SIM 카드를 위한 것입니다. 를 사용하여 오래된 휴대폰에서 결제 할 수 있음을 알 수 있습니다. 이것은 휴대폰이 고전력 비접촉 POS 단말기에 카드 에뮬레이트 자격 증명을 제공하는 애플리케이션 유형입니다. POS 터미널은 리더 역할을하여 AS3923 칩의 도움으로 iPhone6에 전원을 공급합니다. AS3923 블록 다이어그램은 리더 장치에서 제공하는 신호에서 RX 및 TX 변조가 어떻게 증폭되는지를 명확하게 보여줍니다. 즉, iPhone6은 필드를 제공하는 것이 아니라 하나에 반응하기위한 것입니다. 그렇기 때문에 디자인은 NFC 카드 에뮬레이션 및 아마도 Peer-2-Peer만을위한 것이지만 태그 발견은 아닙니다.

AS3923 부스터 IC

HW 액세서리를 사용하는 iPhone6에서 태그 검색을 달성하는 몇 가지 대안이 있습니다 . 이 블로그 게시물 에서 이러한 통합과 개발자가 솔루션을 설계 할 수있는 방법에 대해 설명합니다 . 저전력 리더 디자인은 소수의 개발자가 생각하는 모바일 참여를위한 흥미로운 기회를 열어줍니다.

공개 : 저는 접근 제어에서 결제에 이르기까지 다양한 애플리케이션에 근접 ID 하드웨어, 소프트웨어 및 서비스를 제공하는 TechStars 회사 인 Flomio, Inc. 의 설립자입니다 .

업데이트 : 이 소문이 사실이라면 iPhone이 NFC 태그 검색 모드를 실질적으로 지원할 가능성을 열어줍니다. 전면 유리 디자인은 현재 iPhone의 금속 뒷면처럼 NFC 안테나를 방해하지 않습니다. 우리는이 디자인 접근 방식을-비록 저렴한 재료를 사용 했음에도 불구하고-성공한 일부 맞춤형 리더 디자인에서 시도해 왔으므로 이러한 개선을 기대하고 있습니다.

업데이트 : iOS11은 iPhone7 / 7 + 용 “NFC 리더 모드”지원을 발표했습니다. 자세한 내용은 여기 . API는 앱이 포 그라운드에있는 동안 (백그라운드 감지 없음) NDEF 메시지 읽기 (ISO7816 APDU 없음) 만 지원합니다. 2017 년 가을 출시 예정 … WWDC 키 노트의 스크린 샷 확인 :

여기에 이미지 설명 입력


답변

9 월 9 일 오후 3시 30 분부터 사용 가능한 iOS 8 문서를 살펴보면 NFC 작업을 수행하기 위해 NFC 컨트롤러에 대한 개발자 액세스에 대한 언급이 없습니다. 여기에는 태그 읽기, 태그 쓰기, 페어링, 결제, 태그 에뮬레이션이 포함됩니다. NXP 컨트롤러가 있으면 하드웨어가 이러한 기능을 수행 할 수 있습니다. 그들은 호텔 손님이 NFC로 방 문을 열 수있는 시계 용 타사 앱을 언급했습니다. 이것은 NFC의 고전적인 사용 사례이며 NFC 컨트롤러가 언젠가 개발자에게 개방 될 것이라는 표시를 제공합니다. 시계는 2015 년 1 분기까지 출시되지 않을 예정입니다. 현재로서는 시계가 닫혔지만 곧 열릴 예정입니다. ‘새로움’을 감안할 때

공개 : 애플이 개발자들에게 NFC를 개방하는 데 명백한 관심을 갖고있는 NFC 회사 인 GoToTags 의 CEO 임 .

— 수정 및 업데이트 —

호텔 앱은 실제로 NFC가 아닌 블루투스를 사용합니다. NFC는 여전히 문 잠금 해제에 자주 사용되지만이 예에서는 사용되지 않습니다. 시계에 열린 NFC 컨트롤러가있는 경우 NFC를 사용할 수 있습니다.

저는 Apple이이 모든 것을 알고 있으며이를 최고의 개발자 및 이해 관계자와 논의하고 있다는 것을 알고 있습니다. 태그 읽기에 대한 지원 부족에 대해 이미 엄청난 부정적 반발이있었습니다. 과거의 경우처럼, 필자는 애플이 결국 비 결제 관련 기능 (태그 읽기, 페어링)을 위해 개발자에게이를 개방 할 것으로 기대합니다. 나는 애플이 다른 지갑을 허용하지 않을 것이라고 생각한다. 파일 공유도 AirDrop에 맡길 수 있습니다.

— 2016 년 3 월 23 일 업데이트 —

나는 종종이 게시물을 참조하는 사람들과 함께이 주제에 대한 업데이트를 지속적으로 요청받습니다. Apple이 iPhone SE를 출시하면서 많은 사람들이 Apple이 아직 태그 읽기를 지원하지 않는 이유를 다시 묻습니다. 요약하면 Apple은 현재 NFC의 다른 사용 사례보다 성공한 Apple Pay에 더 중점을두고 있습니다. 애플은 애플 페이로 많은 돈을 벌 수 있고, NFC의 다른 용도로 벌어 들일 것이 적다. NFC와 Apple Pay에 대한 소비자의 신뢰와 보안이 Apple Pay를 위험에 빠뜨리지 않을 것이라고 생각할 때 Apple은 NFC 태그 읽기를 열 가능성이 높습니다. 여기에 자세한 정보가 있습니다 .

— 2017 년 5 월 24 일 업데이트 —

그리스의 한 개발자가 NFC 개인 프레임 워크를 통해 NFC 태그를 읽기 위해 iPhone 6s를 해킹했습니다. 더 많은 정보 및 비디오 . 이것은 장기적인 솔루션은 아니지만 몇 가지 뛰어난 질문에 대한 지침을 제공합니다. iPhone의 NFC 컨트롤러에 NFC 태그에 전원을 공급하기에 충분한 전력이 있습니까? 대답은 ‘ 예’인 것 같습니다 . 초기 테스트에서 범위는 몇 cm로 나쁘지 않습니다. 전원이 조정 가능할 수도 있습니다. 현재 조사 중입니다. 이것의 의미는 중요합니다. 구형 모델의 휴대폰에 태그 읽기 / 쓰기를위한 충분한 RF 전력이 있다면 Apple이 SDK를 열면 NFC 태그를 읽을 수있는 iPhone이 1 억 대가 될 것입니다.


답변

현재 NFC 컨트롤러에 대한 공개 액세스가 없습니다. 현재 iOS 8 GM SDK에는 NFC API가 없습니다. 이는 NFC 기능이 출시시 Apple Pay로 제한 될 것임을 나타냅니다. 이것이 우리의 이해입니다.

분명히 iPhone 6 내부의 NXP 칩은 더 많은 기능을 수행 할 수 있으므로 추가 기능 (페어링, 태그 ​​스캔 / 인코딩)이 출시 또는 가까운 장래에 추가되지 않을 것이라는 의미는 아닙니다.


답변

지금이 순간, 애플은있다 하지 이와 것과 같은 많은 기사에 의해 제안 개발자에 내장 된 NFC 칩에 모든 액세스를 열 :

목록은 계속됩니다. 주된 이유는 (과거에 아이폰에 추가 된 많은 다른 하드웨어 기능과 마찬가지로) 애플이 개발자가 원하는 것을 할 수 있도록 API를 출시하기 전에 그러한 기술의 보안을 보장하기를 원하기 때문입니다. 따라서 처음에는 필요에 따라 내부적으로 만 사용합니다 (예 : 출시시 Apple Pay).

NFC 태그 공급 업체 인 RapidNFC는 “현재 NFC 컨트롤러에 대한 공개 액세스가 없습니다.”라고 말했습니다. “현재 iOS 8 GM SDK에는 NFC API가 없습니다.”

그러나 결국 우리 모두가 그러한 API를 개발할 것이라는 데 동의 할 수 있다고 생각합니다. 이는 시간 문제 일뿐입니다.


답변

NFC 태그 읽기 기능이 iPhone 7 및 7 plus 만 지원하는 iOS 11에 추가되었습니다.

테스트 드라이브로이 저장소를 만들었습니다.

첫째 : NFCNDEFReaderSession 클래스를 시작해야합니다.

var session: NFCNDEFReaderSession?
session = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)

그런 다음 다음과 같이 세션을 시작해야합니다.

session?.begin()

완료되면 :

session?.invalidate()

(self가 구현해야하는) 델리게이트는 기본적으로 두 가지 기능을 가지고 있습니다.

func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage])
func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error)

여기에 내 참조 Apple 문서가 있습니다.


답변

현재 사용 가능한 유일한 정보는 ios8에서 Apple Pay를 사용할 수 있다는 것입니다. 그러나 RFID 태그 또는 오히려 NFC 태그가 특히 감지 / 읽을 수 있는지 여부는 밝히지 않습니다.

IMO는 그러한 가능성을 허용하지 않는 근시안적인 움직임 일 것입니다.하지만 실제로 돈은 Apple Pay에 있습니다. 개발자가 이러한 기능에 액세스 할 수 있도록해야하는 것은 아닙니다. 이전에 테 더링, Bluetooth SPP 및 특정 기능에 대한 액세스 감소를 통해 확인했습니다. .

…하지만 첫 번째 발표 이후 약 5 시간이 지났습니다.


답변

예를 들어 누군가를 지나쳐 지나가고 카드 세부 정보를 훔치거나 단순히 휴대 전화를 흔들 수있는 것과 같이 NFC에 대한 액세스를 순수한 보안 측면으로 볼 수 있기 전에 언젠가가 될 것이라고 생각합니다. 책상 위에두고 온 누군가의 지갑 위에.

첫 번째 단계는 Apple이 은행과 대화하고 이것이 허용되기 전에 카드 및 NFC를 보호하는 더 많은 방법을 찾는 것입니다.