ITMS-90683 bedeutet: Die hochgeladene App kann auf eine geschützte Ressource zugreifen, aber ihre finale Info.plist enthält den erforderlichen Purpose String nicht. Die Lösung ist nicht, jeden Privacy-Key hinzuzufügen. Finde die Ressource, die App Store Connect genannt hat, stelle fest, welcher Code sie erreichen kann, und deklariere einen ehrlichen, nutzerorientierten Grund — nur wenn die App diesen Zugriff wirklich braucht.
Lies den Key in der Meldung
Die Upload-Meldung nennt normalerweise einen fehlenden Key wie NSCameraUsageDescription, NSMicrophoneUsageDescription oder NSPhotoLibraryUsageDescription. Dieser Key ist dein Ausgangspunkt. Apples Referenz der geschützten Ressourcen erklärt, welcher Purpose String zu welcher Ressource gehört.
„Diese App benötigt Kamerazugriff" wiederholt nur den Namen der Berechtigung. Ein brauchbarer String erklärt die Aktion: „Nimm ein Profilfoto auf" oder „Scanne einen Beleg, um ihn einer Ausgabe anzuhängen."
Finde heraus, wer die Ressource referenziert
- Durchsuche das App-Target nach der API oder Capability aus der Warnung.
- Prüfe Extensions und eingebettete Frameworks, nicht nur das Haupt-Target.
- Sieh dir kürzlich hinzugefügte SDKs und optionale Module an. Eine Abhängigkeit kann eine geschützte API referenzieren, auch wenn dein UI sie nie aufruft.
- Entscheide, ob der Release-Build das Feature braucht. Entferne den ungenutzten Codepfad oder ergänze die korrekte Deklaration.
Prüfe das finale App-Bundle
Exportiere genau das Release-Archiv, das du hochlädst, und untersuche dann die verarbeitete Plist im .app-Bundle. Apples Info.plist-Leitfaden beschreibt, wie Xcode Target-Einstellungen und mitgelieferte Plist-Dateien zusammenführt.
unzip YourApp.ipa -d ipa-check
plutil -p ipa-check/Payload/YourApp.app/Info.plist \
| grep UsageDescriptionSchreib einen Purpose String, der das Review übersteht
- Benenne die Nutzeraktion, die den Zugriff auslöst.
- Erkläre, was die Daten in der App ermöglichen.
- Beschreibe das aktuelle Produkt, nicht ein geplantes Feature.
- Lokalisiere den String für jede unterstützte Sprache.
- Teste den System-Prompt auf einer frischen Installation.
Lade ein neues Binary hoch
Store-Metadaten zu ändern verändert das App-Bundle nicht. Erhöhe die Build-Nummer, archiviere exakt die Release-Konfiguration, verifiziere die verarbeitete Plist und lade ein neues Binary hoch. Behalte die ursprüngliche Meldung im Release-Ticket, damit dieselbe Abhängigkeit das Problem später nicht unbemerkt wieder einführt.
War dieser Artikel hilfreich?