Wie "keychain-access-groups" von "entity" gelöst werden, hat einen Wert, der von einem Bereitstellungsprofil nicht zugelassen wird "

8

Ich verwende einen Schlüsselbund in meiner App und erhalte diesen Fehler, wenn ich eine App als AdHoc starte. Es erscheint nicht, wenn ich es mit Debugger (mit Entwickler Provisioning-Profil) ausführen. Wenn die App bereits auf dem Gerät installiert ist und ich sie erneut von Xcode aus installiere, merke ich, dass die App keinen Zugriff auf den Schlüsselbund hat. Es passiert sicherlich wegen dieser Fehler.

Ich habe viel Zeit damit verbracht, diesen Fehler zu googeln, und einige empfehlen, die Berechtigungsdatei mit keychain-access-group darin hinzuzufügen. Aber ich konnte kein Apple-Dokument oder irgendeine vernünftige Erklärung finden, für welche Berechtigungsdatei es nötig war.

Kann mir jemand helfen, es zu lösen?

    
Kostia Kim 29.11.2011, 08:43
quelle

5 Antworten

5

Es gibt einen ziemlich alten Post hier Sie benötigen die Berechtigungen, um zu sagen, unter welcher Bundle-Kennung Ihr App-Bundle-Seed steht, da KeyChain es Ihrer Anwendung ermöglicht, darauf zuzugreifen.

Sobald zwei Anwendungen dieselbe Bundle-ID in ihrem Bundle-Seed haben, können sie den KeyChain-Zugriff teilen.

Wenn also Anwendung A eine gemeinsame Bundle-ID hat: com.IhreFirma.AAAAAA Und Anwendung B als eine allgemeine Bundle-ID com.IhreFirma.BBBBBB

Und wenn sie beide eine Datei mit Berechtigungen in ihrer .ipa haben (plist enthält ein Array keyed "keychain-access-groups" mit einem String ".com.IhreFirma.AAAAA" und .com.IhreFirma.BBBBB ")

Sie können den KeyChain-Zugriff teilen.

  • In Bezug auf Ihr Debug / AdHoc-Problem. Überprüfen Sie in den Projekteinstellungen unter "Code Signing" - & gt; "Code Signing Entitlements", dass beide leer sind.
Wiz 22.05.2012 20:25
quelle
2

Ich habe eine Lösung gefunden. Das Präfix appID scheint für adHoc- und Debug-Profile anders zu sein.

Nehmen wir an, wir haben die folgenden AppIds:

  • a.com.meinefirma.A
  • b. *

Die zweite ID wurde von xcode erstellt und ihr Präfix wird verwendet, um die Debug-Version der App zu signieren. Die erste ID wird verwendet, um die AdHoc-Version der App zu signieren.

Wenn Sie nun versuchen, den Schlüsselbund mit der Zugriffsgruppe a.com.mycompany zu verwenden, erhalten Sie einen Schlüsselbundzugriff für die AdHoc-Version. Wenn Sie die Accessgroup b.com.mycompany verwenden, erhalten Sie Zugriff in der Debug-Version. Keine von ihnen funktioniert für beide.

Ich habe das Problem gelöst, indem ich eine neue Platzhalter-ID erstellt habe: a. * und sie für das "iOS Team Provisioning Profile: *" verwendet habe. Es scheint, dass dieses Bereitstellungsprofil irgendwie zum Signieren eines Debug-Builds der App verwendet wird. Ich dachte eigentlich, dass es die Development Provisioning-Profile verwendet, um es zu signieren?!

Mit diesen Änderungen kann ich jedoch im Debug- und AdHoc-Modus mit derselben Zugriffsgruppe auf den Schlüsselbund zugreifen.

Es scheint so als ob neue registrierte Benutzer nicht auf dieses Problem stoßen, jetzt erstellt xCode automatisch eine ID mit dem richtigen Präfix.

    
Trantec 09.07.2013 09:42
quelle
1

In das gleiche Problem und verschiedene Variationen (Fehler ITMS-90164, unter anderem). Nachdem ich stundenlang mit verschiedenen Einstellungen getüftelt hatte, folgte ich schließlich widerwillig Apples Technical Q & amp; A QA1814: Einrichten von Xcode zur automatischen Verwaltung Ihrer Bereitstellungsprofile . Die Schritte sind sehr einfach und unkompliziert, komplett mit Screenshots und dem immer wichtigen Hinweis, Xcode zu recyceln, nachdem Sie die Änderungen vorgenommen haben. Vor allem hat es meine Probleme gelöst und mir erlaubt, mein Archiv endlich in den App Store zu laden.

    
T'Pol 17.11.2015 23:07
quelle
0

Wie in den anderen Antworten erwähnt, ist dies auf das falsche Bereitstellungsprofil zurückzuführen.

Ich hatte dieses Problem in XCode 6. Ich hatte zwei Ziele in meinem Projekt, und eines davon wurde immer mit dem falschen Profil erstellt, egal was ich tat (einschließlich der Änderung der Provisioning-Profil-Einstellung in den Build-Einstellungen).

>

Nach stundenlangem Herumspielen fiel mir folgendes auf:

  1. Das gute Ziel war die Verwendung eines Bereitstellungsprofils namens "XC: com.meinfirmenname.meinzielname1"
  2. Das defekte Ziel verwendete ein Profil namens "XC:". Dieses Profil ist das Profil "Xcode: Wildcard AppID ()".

Ich weiß nicht, woher diese beiden stammen, aber was ich getan habe, um mein Problem zu lösen, war folgendes:

  1. Melden Sie sich bei developers.apple.com an
  2. Gehe zu Zertifikate, Identifikatoren & amp; Profile
  3. Klicken Sie auf "Alle" unter Bereitstellungsprofile auf der linken Leiste
  4. Klick auf "+"
  5. Ein neues Profil mit dem Namen "XC: com.mycompanyname.mytargetname2" erstellt (HINWEIS: Die Einstellungen sind spezifisch für Sie. Der com.mycompanyname.mytargetname2 sollte durch die Bundle-ID Ihrer App ersetzt werden.

Danach hat es funktioniert.

    
Oz Solomon 04.11.2014 18:01
quelle
0

Zusätzlich zu den oben genannten Lösungen stieß ich auf eine andere Variante dieses Problems.

Meine Unternehmenskennung wurde geändert (möglicherweise in Verbindung mit der Annahme des neuesten Vertragsupdates auf developer.apple.com) und das Präfix für meine App wurde geändert. Also vorher war es vielleicht ABCCYZ0U812.com.whatever.app , jetzt war es 90210SUXX11.com.whatever.app

Als ich ging zu submit und Sie erhalten den Bildschirm, der sagt "Sends (App-Name) an Apple" und es gibt eine Auflistung namens "Binary und Berechtigungen", wenn ich den Eintrag unter meiner App erweitern würde (zweimal, seit ich rate Xcode hat einen Fehler beim ersten Mal) Ich würde etwas wie

sehen %Vor%

Aus irgendeinem Grund verwendete es immer noch die alte Team-ID für das keychain-access-groups -Bit, die nun aber nicht mit der neuen Team-ID

übereinstimmte

Ich habe folgendes gemacht

  1. Durch Klicken auf den Pfeil neben dem Bereitstellungsprofil wird der Finder an der Stelle geöffnet, an der die Profile gespeichert sind
  2. Alle .mobileprovision-Dateien in diesem Verzeichnis wurden gelöscht
  3. Dialog zum Senden geschlossen
  4. Klicken Sie in Xcode auf Xcode - & gt; Einstellungen - & gt; Konten und ließ mein Konto die Bereitstellungsprofile
  5. erneut herunterladen
  6. Versucht, das Archiv erneut einzureichen

Jetzt hat alles gepasst und es hat funktioniert

%Vor%

Es mag einen heikleren Weg geben, es zu reparieren, ohne alles zu löschen, aber das sollte Sie auf den richtigen Weg bringen.

    
Tom Kidd 13.07.2017 13:21
quelle

Tags und Links