L'autorisation de l'utilisateur est désormais requise pour communiquer depuis iOS 14 vers le réseau local.
Par exemple, si vous utilisez la diffusion ou la multidiffusion pour détecter automatiquement les périphériques de votre réseau local, la boîte de dialogue d'alerte suivante sera affichée à l'utilisateur. Sous iOS14, je pensais que je venais de demander l'autorisation à l'utilisateur, mais selon la fonction, il est nécessaire de changer l'implémentation ou de l'appliquer à Apple. Pour plus de détails, reportez-vous à l'URL indiquée dans les références.
["Support local network privacy in your app (WWDC2020)"] Dans (https://developer.apple.com/videos/play/wwdc2020/10110/), si l'utilisateur a l'autorisation de communiquer avec le réseau local, cela est expliqué comme suit.
--Communiquer avec l'hôte du réseau local via TCP / UDP --Recherche et publicité sur Bonjour
Lorsque vous utilisez un réseau local, ce dont vous avez besoin en tant que développeur est le suivant.
La boîte de dialogue suivante s'affiche lorsque l'application requiert une autorisation pour le réseau local. Si rien n'est défini, vous verrez une description standard de la figure, telle que ʻIntroduction. Vous pouvez ajouter un texte descriptif à cette boîte de dialogue en mettant un texte descriptif dans ʻInfo.plist
. Vous pouvez expliquer à l'utilisateur pourquoi l'application en a besoin.
Plus précisément, éditez ʻInfo.plist dans Xcode et la valeur de
Confidentialité - Description de l'utilisation du réseau local` ajoutera un texte descriptif.
Le fichier de ʻInfo.plist` est le suivant.
Info.plist
<key>NSLocalNetworkUsageDescription</key>
<string>Veuillez décrire dans cette partie.</string>
Lors de la recherche d'un service dans Bonjour, saisissez le nom du service à rechercher dans ʻInfo.plist. Les services répertoriés ici seront détectables dans Bonjour. Modifiez ʻInfo.plist
dans Xcode et ajoutez le service à rechercher dans les services Bonjour
. Puisqu'il s'agit d'un tableau, vous pouvez en lister plusieurs.
Info.plist
<key>NSBonjourServices</key>
<array>
<string>_ipp._tcp.</string>
<string>_printer._tcp.</string>
</array>
Si vous avez besoin d'une communication de diffusion / multidiffusion autre que celle ci-dessus, vous devez vous adresser à Apple pour chaque identifiant d'application. Plus précisément, [«Demande d’autorisation de mise en réseau multicast»] Vous pouvez postuler à partir de (https://developer.apple.com/contact/request/networking-multicast). Les simulateurs iOS et les simulateurs iPad OS peuvent communiquer sans cette autorisation. Cependant, sur la machine réelle, la communication n'est pas possible sans cette autorisation. Si vous pouvez communiquer avec le simulateur mais pas avec l'appareil réel, veuillez vérifier si cette autorisation est requise.
Après avoir obtenu le «droit d'accès au réseau multicast» d'Apple, certains paramètres sont nécessaires. J'écrirai la méthode de réglage.
Sélectionnez l'ID d'application cible. Plus précisément, sélectionnez l'application cible parmi les «Identificateurs» des «Certificats, identificateurs et profils» d'Apple Developer dans la figure ci-dessous. L'URL actuelle est https://developer.apple.com/account/resources/identifiers/list.
Après avoir sélectionné l'ID d'application cible, vous pouvez modifier les paramètres de l'application avec ʻEdit your App ID Configuration`. Pour les applications qui ont acquis le droit au «Multicast Networking Entitlement», vous pourrez sélectionner «Additional Capabilities» comme indiqué dans la figure ci-dessous, alors sélectionnez «Multicast Networking».
Sélectionnez le fichier avec ʻapp name.entitlementsdans Xcode. Mettez
com.apple.developer.networking.multicast dans
cléet
1 dans
valeur` comme indiqué dans la figure ci-dessous.
Ceci termine les paramètres de capacité.
C'est la méthode de description dans le fichier suivant.
nom de l'application.entitlements
<key>com.apple.developer.networking.multicast</key>
<true/>
Recommended Posts