iOS 14에서 로컬 네트워크 사용

소개



iOS14에서 로컬 네트워크로 통신하려면 사용자 권한이 필요합니다.
예를 들어, 로컬 네트워크에 존재하는 장비를 자동 감지하기 위해 브로드캐스트 또는 멀티캐스트를 사용하면 사용자에게 다음과 같은 경고 대화 상자가 표시됩니다. iOS14에서는 유저에게 허가를 요구하게 되었을 뿐이라고 생각했습니다만, 기능에 따라서는, 구현의 변경이나 Apple에의 신청이 필요합니다. 자세한 내용은 참고 문헌에 제시된 URL을 참조하십시오.


iOS14에서 로컬 네트워크 통신에 권한이 필요한 기능



"Support local network privacy in your app (WWDC2020)" 에서는, 로컬 네트워크에의 통신에 관해, 유저에게 허가가 있는 경우는, 이하와 설명되어 있습니다.

사용자 권한 필요
  • TCP/UDP로 로컬 네트워크 호스트와 통신
  • Bonjour에서 검색 및 광고
  • IP 멀티 캐스트, 브로드 캐스트, ICMP와의 통신



  • 개발자가 변경해야 할 사항



    로컬 네트워크를 사용하는 경우 개발자로 필요한 것은 다음과 같습니다.

    1. 로컬 네트워크 권한 부여 대화 상자 설명 추가



    앱에서 로컬 네트워크 권한이 필요할 때 다음 대화상자가 표시됩니다. 아무것도 설정하지 않으면 はじめに 와 같은 그림의 표준 설명문이 표시됩니다. Info.plist 에 설명문을 넣는 것으로, 이 다이얼로그에 설명문을 추가할 수가 있습니다. 앱에서 필요한 이유를 사용자에게 설명할 수 있습니다.



    특히 Xcode에서 Info.plist 를 편집하고 Privacy - Local Network Usage Description 의 값이 설명문을 추가합니다.

    Info.plist 파일은 다음과 같습니다.

    Info.plist
    <key>NSLocalNetworkUsageDescription</key>
     <string>この部分に説明を記載してください。</string>
    

    2. Bonjour에서 검색할 서비스 추가



    Bonjour에서 서비스를 검색할 때 Info.plist에 검색할 서비스 이름을 나열합니다. 여기에 나열된 서비스는 Bonjour에서 검색할 수 있습니다. Xcode에서 Info.plist 를 편집하고 Bonjour services 에 검색할 서비스를 추가합니다. 배열이 되어 있으므로 복수 기재할 수 있습니다.



    Info.plist
    <key>NSBonjourServices</key>
    <array>
     <string>_ipp._tcp.</string>
     <string>_printer._tcp.</string>
    </array>
    

    3. 브로드캐스트/멀티캐스트 통신이 필요한 경우



    Multicast Networking Entitlement 신청



    상기 이외의 브로드캐스트/멀티캐스트 통신이 필요한 경우, Apple은 앱 ID별로 신청해야 합니다. 구체적으로는 멀티캐스트 네트워크 인타이틀먼트 신청(Multicast Networking Entitlement Request) 으로부터 신청할 수 있습니다.
    iOS 시뮬레이터 및 iPadOS 시뮬레이터에서는 이 권한 없이 통신할 수 있습니다. 그러나 실제 기기에서는 이 권한이 없으면 통신할 수 없습니다. 시뮬레이터로 통신할 수 있지만 실제 기기로 통신할 수 없는 경우에는 이 허가가 필요한지 확인해 보십시오.

    Multicast Networking Entitlement 취득 후 설정 방법



    Apple에서 Multicast Networking Entitlement를 가져온 후 몇 가지 설정이 필요합니다. 그 설정 방법을 적어 둡니다.

    대상 앱에 Capabilities 추가(Apple Developer)



    대상 앱 ID를 선택합니다. 특히 아래 그림의 Apple Developer Certificates, Identifiers & Profiles Identifiers에서 대상 앱을 선택합니다.
    현재 URL은 htps : //로 ゔぇぺぺr. 아 ぇ. 코 m / 아코 t / 레소 r s / 이덴 치후 에 rs / st입니다.



    대상 앱 ID를 선택하면 Edit your App ID Configuration 에서 앱 설정을 변경할 수 있습니다.Multicast Networking Entitlement 를 취득한 앱은 아래 그림과 같이 Additional Capabilities 를 선택할 수 있게 되므로 Multicast Networking 를 선택합니다.



    대상 앱에 Capabilities 추가(Apple Developer)



    Xcode에서 アプリ名.entitlements 파일을 선택합니다. 아래 그림과 같이 keycom.apple.developer.networking.multicast 를, value1 를 넣습니다.
    이것으로 Capability 설정이 완료됩니다.



    다음 파일에서 설명하는 방법입니다.

    앱 이름.entitlements
    <key>com.apple.developer.networking.multicast</key>
    <true/>
    

    참고문헌


  • 앱에서 멀티캐스트 네트워크를 사용하려면
  • Support local network privacy in your app (WWDC2020)
  • Multicast Networking Entitlement
  • 좋은 웹페이지 즐겨찾기