2014-09-04 18 views
9

Mi accorgo che quando abilito Keychain Sharing in Xcode per la mia app iOS Xcode dice che "Aggiungerà la titolarità di Keychain Sharing al tuo App ID", e sembrerà connettersi al mio account perché ottengo un popup che chiede quale account sviluppatore uso. Tuttavia sul portale dev non c'è alcuna modifica visibile a nessuno dei miei ID app e il mio profilo di provisioning non è invalidato come talvolta accade quando cambio le autorizzazioni di un'app. La condivisione di portachiavi non è un'opzione visibile da abilitare/disabilitare nell'app ID, neanche.L'abilitazione della condivisione di portachiavi modifica l'AppID?

Qualcuno sa cosa Xcode sta facendo sotto le copertine qui? La modifica locale al file delle autorizzazioni è evidente, ma mi piacerebbe capire il lato App ID di esso.

risposta

10

Ogni elemento portachiavi in ​​iOS contiene un attributo chiamato il gruppo di accesso portachiavi. Un'app per iOS può accedere solo a quegli articoli portachiavi a cui ha il permesso. Questa autorizzazione proviene dalle autorizzazioni di firma del codice stampate nell'app al momento della firma.

Per impostazione predefinita, un'app può accedere solo agli elementi del portachiavi con il gruppo di accesso portachiavi che corrisponde al diritto di firma del codice identificativo dell'applicazione. Tuttavia, se uno sviluppatore desidera condividere elementi di portachiavi tra le proprie app, può aggiungere un'autorizzazione alla firma del codice per portachiavi-accesso-gruppi personalizzata che specifica una serie di gruppi di accesso a portachiavi a cui può accedere l'app.

Normalmente uno crea elementi portachiavi senza impostare l'attributo del gruppo di accesso kSecAttrAccessGroup. In tal caso, Keychain Services imposterà automaticamente tale attributo sul valore predefinito. Se non esiste un'autorizzazione per i gruppi di accesso a portachiavi, il valore predefinito è il valore dell'autorizzazione dell'identificativo dell'applicazione. Altrimenti, il valore predefinito è il valore del primo elemento dell'array nel diritto dei portachiavi-accesso-gruppi.

Quando si utilizza l'editor Xcode Capabilities nel riquadro delle impostazioni di destinazione per attivare Keychain Sharing, Xcode aggiungerà il prefisso ID dell'app richiesto (ID team) in primo piano rispetto a qualsiasi elemento del gruppo di portachiavi elencato in fase di compilazione. Puoi vederlo nel file dei diritti generati rappresentato dall'impostazione build $ (AppIdentifierPrefix).

Problemi correlati