[SWIFT] Verwenden des lokalen Netzwerks mit iOS 14

Einführung

Für die Kommunikation von iOS 14 mit dem lokalen Netzwerk ist jetzt eine Benutzerberechtigung erforderlich. Wenn Sie beispielsweise Broadcast oder Multicast verwenden, um Geräte in Ihrem lokalen Netzwerk automatisch zu erkennen, wird dem Benutzer ein Warndialogfeld wie das folgende angezeigt. In iOS14 dachte ich, ich hätte den Benutzer nur um Erlaubnis gebeten, aber je nach Funktion muss die Implementierung geändert oder auf Apple angewendet werden. Einzelheiten finden Sie unter der in den Referenzen angegebenen URL. LocalNetworkPermission.png

Funktionen, für die eine Berechtigung für die lokale Netzwerkkommunikation in iOS14 erforderlich ist

["Support local network privacy in your app (WWDC2020)"] Wenn in (https://developer.apple.com/videos/play/wwdc2020/10110/) der Benutzer die Berechtigung zur Kommunikation mit dem lokalen Netzwerk hat, wird dies wie folgt erläutert.

Benötigt Benutzerberechtigung

--Kommunizieren Sie mit dem lokalen Netzwerkhost über TCP / UDP

NeedLocalNetworkPermission.png

Was der Entwickler ändern muss

Wenn Sie ein lokales Netzwerk verwenden, benötigen Sie als Entwickler Folgendes.

1. Fügen Sie eine Beschreibung für das Dialogfeld "Zulassen des lokalen Netzwerks" hinzu

Der folgende Dialog wird angezeigt, wenn die App eine Berechtigung für das lokale Netzwerk benötigt. Wenn nichts festgelegt ist, wird eine Standardbeschreibung der Abbildung angezeigt, z. B. "Einführung". Sie können diesem Dialogfeld einen beschreibenden Text hinzufügen, indem Sie einen beschreibenden Text in "Info.plist" einfügen. Sie können dem Benutzer erklären, warum die App dies benötigt.

LocalNetworkPermission説明文.png

Wenn Sie "Info.plist" in Xcode bearbeiten, wird durch den Wert "Datenschutz - Beschreibung der lokalen Netzwerknutzung" ein beschreibender Text hinzugefügt. Info.plist.png

Die Datei von "Info.plist" lautet wie folgt.

Info.plist


<key>NSLocalNetworkUsageDescription</key>
 <string>Bitte beschreiben Sie in diesem Teil.</string>

2. Hinzufügung eines Dienstes zur Suche durch Bonjour

Geben Sie bei der Suche nach einem Dienst in Bonjour den Namen des zu durchsuchenden Dienstes in "Info.plist" ein. Die hier aufgeführten Dienstleistungen werden von Bonjour entdeckt. Bearbeiten Sie "Info.plist" mit Xcode und fügen Sie den zu suchenden Dienst zu "Bonjour-Diensten" hinzu. Da es sich um ein Array handelt, können Sie mehrere auflisten.

Bonjour.png

Info.plist


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

3. Wenn Broadcast- / Multicast-Kommunikation erforderlich ist

Multicast Networking Entitlement-Anwendung

Wenn Sie eine andere Broadcast- / Multicast-Kommunikation als die oben genannten benötigen, müssen Sie für jede App-ID einen Antrag bei Apple stellen. Insbesondere ["Multicast Networking Entitlement Request"] Sie können sich unter (https://developer.apple.com/contact/request/networking-multicast) bewerben. iOS-Simulatoren und iPad OS-Simulatoren können ohne diese Erlaubnis kommunizieren. Auf dem tatsächlichen Computer ist eine Kommunikation ohne diese Berechtigung jedoch nicht möglich. Wenn Sie mit dem Simulator, aber nicht mit dem tatsächlichen Gerät kommunizieren können, überprüfen Sie bitte, ob diese Berechtigung erforderlich ist.

Einstellungsmethode nach dem Erwerb der Multicast-Netzwerkberechtigung

Nach dem Erhalt der "Multicast Networking Entitlement" von Apple sind einige Einstellungen erforderlich. Ich werde die Einstellungsmethode schreiben.

Hinzufügen von Funktionen der Zielanwendung (Apple Developer)

Wählen Sie die Ziel-App-ID aus. Wählen Sie in der folgenden Abbildung die Ziel-App unter "Kennungen" von "Zertifikaten, Kennungen und Profilen" von Apple Developer aus. Die aktuelle URL lautet https://developer.apple.com/account/resources/identifiers/list.

Identifiers.png

Nachdem Sie die Ziel-App-ID ausgewählt haben, können Sie die App-Einstellungen unter "App-ID-Konfiguration bearbeiten" ändern. Für Apps, die "Multicast Networking Entitlement" erworben haben, können Sie "Additional Capabilities" auswählen (siehe Abbildung unten). Wählen Sie daher "Multicast Networking".

Capability.png

Hinzufügen von Funktionen der Zielanwendung (Apple Developer)

Wählen Sie die Datei mit "app name.entitlements" in Xcode aus. Geben Sie "com.apple.developer.networking.multicast" in "key" und "1" in "value" ein, wie in der folgenden Abbildung gezeigt. Damit sind die Fähigkeitseinstellungen abgeschlossen.

entitlements.png

Dies ist die Beschreibungsmethode in der folgenden Datei.

App Name.entitlements


<key>com.apple.developer.networking.multicast</key>
<true/>

Verweise

Recommended Posts

Verwenden des lokalen Netzwerks mit iOS 14
Führen Sie ein einfaches Modell aus, das mit Keras unter iOS mit CoreML erstellt wurde
Erstellen eines Testflusses auf CircleCI mit Jib
Erstellen Sie eine Java-Entwicklungsumgebung mit jenv auf Ihrem Mac
Verwenden Sie JDBC unter Linux
Erstellen eines lokalen Repositorys
Ich habe versucht, Log4j2 auf einem Java EE-Server zu verwenden
Erstellen eines Docker-Hosts in AWS mit Docker Machine (persönliches Memorandum)
Zeichnen Sie mit PDFBox eine Linie in ein vorhandenes PDF-Dokument
[Swift 5] Wählen Sie mit der UIDate-Auswahl unter iOS14 ein Datum aus
Versuchen Sie, mit Helidon einen WebAP-Server auf dem Mikro zu starten
Versuchen Sie Hello World mit einfachem Java im Docker-Container
Erstellen eines Kalenders mit Ruby
[IOS] canOpenURL wird in iOS14 falsch
Erstellen Sie eine Lotterie mit Ruby
Poste Videos auf Schienen
ATDD-Entwicklung unter iOS (Basic Edition)
Machen Sie einen Diamanten mit Java
Beachten Sie beim Upgrade von Tomcat auf einem Web-System, das Oracle verwendet
NLP4J Morphologische Analyse mit Java (unter Verwendung der japanischen morphologischen Analyse des Yahoo! Developer Network)
Richten Sie mit Bitnamis AMI ganz einfach einen Jenkins-Server in AWS ein