Xcode sagt, dass die Netzwerkerweiterungsfunktion nicht aktiviert ist, wenn dies der Fall ist

Ich hatte in den letzten zwei Wochen viele Probleme, als ich versuchte, eine MacOS-App eines Drittanbieters zu signieren und zu verteilen. Ich kann eine App nicht ordnungsgemäß mit Xcode signieren, weil Xcode sagt, dass ich keine Netzwerkerweiterungsberechtigung habe, obwohl ich sie sowohl in Xcode als auch im Apple Developer Portal aktiviert habe.

Ich bin kein bezahlter Apple-Entwickler, aber ich bin Teil eines Teams und habe die richtigen Schlüssel vom Ersteller des Teams (der ein bezahlter Entwickler ist). Ich kann andere Apps signieren und mit dem codesignTool verteilen, aber sobald ich versuche, die App mit Berechtigungen zu signieren, treten Probleme auf.

Das Senden der App an andere Personen führt dazu, dass sie mit a Killed 9oder a SIGTERMbeendet wird, was meiner Meinung nach darauf hinweist, dass beim Signieren etwas schief geht.

Dies ist der Fehler, den ich erhalte, wenn ich das Bereitstellungsprofil auswähle, das ich im Entwicklerportal erstellt habe

Geben Sie hier die Bildbeschreibung ein

In Xcode habe ich es aber aktiviert

Geben Sie hier die Bildbeschreibung ein

Und es ist auch im Entwicklerportal aktiviert

Geben Sie hier die Bildbeschreibung ein

Trotzdem bekomme ich dieses Problem, wenn ich versuche, es mit diesem Bereitstellungsprofil zu signieren

Geben Sie hier die Bildbeschreibung ein

Also ich bin sehr verwirrt. Ich verwende die richtige Bundle-ID, ich habe alles richtig eingerichtet, soweit ich das beurteilen kann, und ich kann diese Anwendung immer noch nicht signieren und verteilen. Ich bin mir sicher, dass mir hier etwas Einfaches fehlt, aber ich habe keine Ahnung, was das sein könnte.

Wenn der bezahlte Entwickler, der „Team-Agent“, (ich nehme an, dass es sich um ein „individuelles“ Entwicklerkonto handelt), die App erstellt, funktioniert sie?

Antworten (3)

Für alle, die Netzwerkerweiterungen in ihrer macOS-App verwenden möchten:

Entwickler-ID-Bereitstellungsprofile unterstützen die Berechtigung für Netzwerkerweiterungen tatsächlich nicht. Entwicklungs- und App Store-Bereitstellungsprofile hingegen unterstützen dies. Es ist in Xcode oder der Entwicklerseite (die es als aktiviert anzeigen) nicht gut beschrieben. Erst wenn Sie versuchen, ein Archiv mit dem Entwickler-ID-Bereitstellungsprofil zu verteilen, werden Sie sehen, dass es nicht enthalten ist, oder wenn Sie ausführen security cms -D -I Developer_ID.provisionprofile.

Siehe Frage Nr. 8 in diesem Beitrag im Apple-Entwicklerforum: https://forums.developer.apple.com/thread/67613

Als erstes würde ich überprüfen, ob Sie alle richtigen Zertifikate verwenden. Stimmen insbesondere die Zertifikate auf Ihrer Seite (innerhalb von Xcode) mit denen auf Apples Seite überein?

Sie können beginnen mit:

  1. Schlüsselbundverwaltung starten (standardmäßig in /Applications/Utilities )

  2. Wählen Sie oben im linken Bereich die Anmeldeoption unter der Überschrift Schlüsselbunde aus

  3. Wählen Sie unten im linken Bereich die Option Meine Zertifikate im Abschnitt Kategorie aus

  4. Überprüfen Sie nun alle Zertifikate, um sicherzustellen, dass sie alle ein Offenlegungsdreieck haben (es erscheint vor dem Zertifikatsnamen).

  5. Vergewissern Sie sich, dass alle Zertifikate gültig sind (d. h. wenn Sie auf den Zertifikatsnamen klicken, sehen Sie oben im Fenster eine Beschreibung und es sollte einen grünen Kreis mit einem Häkchen darin und die Meldung „Dieses Zertifikat ist gültig .“

  6. Überprüfen Sie nun auch, ob das/die Zertifikat(e) für die betreffende App mit dem Zertifikat bei Apple übereinstimmen.

Lass mich wissen, wie es dir geht.

Nun, ich habe das Problem nie herausgefunden, aber ich vermute, dass es mit einigen falschen Fehlermeldungen und schlechter Dokumentation zu tun hat.

Ich brauchte NetworkExtension zunächst nicht, aber ich dachte, es wäre erforderlich, um die Personal VPN-Erweiterung zu verwenden. Durch Deaktivieren der Netzwerkerweiterung und Klicken auf „Problem beheben“ unter der Personal VPN-Erweiterung konnte ich die App exportieren und alles wie beabsichtigt zum Laufen bringen.