Reference:
https://developer.apple.com/videos/play/wwdc2019/901/
WWDC2019: What's New in Core Bluetooth
위 영상의 중간 부분을 제외한 내용을 정리한 글입니다.
지극히 제가 필요한 부분만 정리했으니, 참고하시길 바랍니다.
Learn how to adopt privacy-enhancing changes in Core Bluetooth. Discover new possibilities with LE 2Mbps, advertising extensions, BR/EDR, and dual-mode devices. Understand how to debug your Core Bluetooth communication with the improvements to PacketLogger.
확장 광고를 이제 검색할 수 있는데, LE 2Mbps로 전송되는 확장 광고만 검색함
-> 액세서리를 개발하는 경우, 액세서리는 LE 2Mbps로 확장된 광고도 지원해야 함
최대 124byte의 확장된 광고 페이로드 지원 (기존 4배)
새로운 API
RF 환경이 매우 동적이기 때문에, 연결 포시가 실제로 광고주에게 도달하지 못할 수 있다. 그래서 이로 인해 하루종일 전체 프로세서가 불필요하게 깨어나서, 배터리를 더 많이 닳게 할 수 있다.
iOS 12에서는 CBPeripheralManager를 인스턴스화하고 백그라운드에서 광고하려는 경우, 사용자의 인증을 받아야 했다.
이제는 아무 CoreBluetooth 기능이든 다 권한을 요청할거다.
그러니깐 info.plist에 설명 먼저 추가해라.
왜 필요한지 알려줘라
이렇게 Authorization property도 만들어놨다.
블루투스 신호 받으면 가장 먼저 실행되는 메서드가 ManagerDidUpdateState이다.
권한 받아올때 처리하는 코드가 아래처럼 생겼다면, 다시 짜라
이게 맞다 이렇게 해라~
애플은 ANCS(Apple Notification Center Service)로 액세서리가 iOS notification center에서 시스템 및 앱 알림을 받을 수 있도록 지원한다.
ANCS의 개인정보 보호 업데이트에서는 이제 액세서리와 알림을 공유하려면, 사용자 인증이 필요하다.
유저가 iOS 13으로 업데이트하면, 액세서리가 연결되어 알림을 등록할 때 이 권한 메세지가 뜬다.
그리고 권한 허용 여부를 정하면, 아이폰 설정 가서 수정할 수 있지.
CBCentralManager에서 연결하려는 주변 장치가 ANCS를 지원한다는 것을 알고 있는 경우, 새로운 CBConnect 옵션을 사용할 수 있다.
이렇게 하면 연결, 페어링에 성공하면, 유저가 앱에 있는 동안, 권한 알럿이 뜨고, 유저가 알럿에 응답하면 앱은 다음을 알려주는 delegate callback을 받게 된다.
그리고 get ancsAuthorized를 통해 해당 값을 가져올 수 있다.
이렇게 생겼나보다
그리고 여러분이 정말 좋아할 기능이 새로 추가되었는데, 잇츠 라이브 캡쳐
iOS장치에 로그인 프로필을 설치하고, 이걸 Mac에 연결하고, PacketLogger를 실행하고, iOS 장치에서 액세서리로 실시간 블루투스 트래픽을 캡쳐할 수 있다.
(짝짝짝)
여러 iOS장치를 연결하고, 실시간 트래픽을 캡쳐할 수도 있다.
(짝짝짝짝2)
디버깅할 때 더 많은 컨텍스트를 제공할 수 있기를 바란다.
그래서 어떻게 쓰나요?!
iOS에 iOS13 베타를 설치하고, 개발자 로깅 프로필을 설치하고, PacketLogger를 실행하고, iOS를 Mac에 연결하고, PacketLogger 애플리케이션에서 New iOS Trace 파일을 선택하면 된다.
iOS에 라이브 캡쳐가 진행중임을 알려주는 표시도 있다.
PacketLogger는 xcode 패키지에 있다.
와