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.
["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.
--Kommunizieren Sie mit dem lokalen Netzwerkhost über TCP / UDP
Wenn Sie ein lokales Netzwerk verwenden, benötigen Sie als Entwickler Folgendes.
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.
Wenn Sie "Info.plist" in Xcode bearbeiten, wird durch den Wert "Datenschutz - Beschreibung der lokalen Netzwerknutzung" ein beschreibender Text hinzugefügt.
Die Datei von "Info.plist" lautet wie folgt.
Info.plist
<key>NSLocalNetworkUsageDescription</key>
<string>Bitte beschreiben Sie in diesem Teil.</string>
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.
Info.plist
<key>NSBonjourServices</key>
<array>
<string>_ipp._tcp.</string>
<string>_printer._tcp.</string>
</array>
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.
Nach dem Erhalt der "Multicast Networking Entitlement" von Apple sind einige Einstellungen erforderlich. Ich werde die Einstellungsmethode schreiben.
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.
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".
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.
Dies ist die Beschreibungsmethode in der folgenden Datei.
App Name.entitlements
<key>com.apple.developer.networking.multicast</key>
<true/>
Recommended Posts