Credo che il problema è che il requisito designato dalla tua firma lo induce a non accettarsi come "la stessa app" di se stesso (a scopo Keychain).
Una causa comune per questo, e penso che sia il tuo, è l'utilizzo di un ID applicazione Developer cert, senza requisiti designati e senza il certificato intermedio installato.
Un requisito Developer ID standard di simile a questo:
designated => anchor apple generic and
identifier \"com.example.appName\" and
((cert leaf[field.1.2.840.113635.100.6.1.9] exists) or
(certificate 1[field.1.2.840.113635.100.6.2.6] exists and
certificate leaf[field.1.2.840.113635.100.6.1.13] exists and
certificate leaf[subject.OU] = \"1AZBYCXDW9V\"))
Se si vuole costruire da soli, si deve sostituire l'identificativo con il proprio identificativo fagotto e il subject.OU con il valore dal vostro cert. (Se si fa doppio clic su di esso in Accesso Portachiavi, dovrebbe essere indicato come l'Unità organizzativa.) Quindi è possibile aggiungere a "Altre Bandiere firma del codice":
--requirements "=designated ..." (the whole mess from above)
Tuttavia, un modo molto migliore per farlo è usare Xcode 4.3.2 o successivo. Se riconosce che stai utilizzando un certificato Application ID per sviluppatori e puoi vedere il cert intermedio nel portachiavi, questo verrà generato per impostazione predefinita.
Inoltre, se si utilizza Archivia organizzatore in Xcode su "Esporta applicazione con firma ID sviluppatore", invece di utilizzare semplicemente la compilazione dalla directory di destinazione, si accerterà di firmare l'app e tutti gli altri simboli inclusi e verificherà che tutto sia configurato correttamente. (I fallimenti sono piuttosto criptici, per esempio, il tuo passaggio "Scegli un ID di sviluppatore da firmare con" potrebbe non avere nessuna scelta, con un messaggio nel syslog che non ha informazioni utili - ma almeno il fatto che abbia fallito o sia riuscito a restringersi
In entrambi i casi, è necessario scaricare e installare (sul computer di costruzione) il certificato intermedio, denominato "Autorità di certificazione ID sviluppatore", dal collegamento "Certificato intermedio ID sviluppatore" nel sito Developer Certificate Utility .
Un'ultima cosa: anche se questo risolve il problema in esecuzione sulla macchina di compilazione, è necessario testare la versione del sistema operativo più vecchia che si supporta. Ad esempio, i requisiti compilati dal codice di Leone a volte non possono essere analizzati su Leopard o, talvolta, su Snow Leopard. Se ciò accade ... vedi Gatekeeper vs. Leopard: an ongoing tale.
Come stai firmando il codice della tua app? (Questo è uno dei motivi più comuni di questo problema.) – abarnert
Devo impostare il codice nel set up delle impostazioni di Xcode, Sotto il segno del codice Ho selezionato un'identità di firma del codice per l'applicazione ID dello sviluppatore –
Hai eseguito una build precedente sul stessa macchina?A seconda del Requisito Designato (che dipende dalla versione di Xcode 4 che usi, se stai semplicemente attaccando ai valori predefiniti), il Portachiavi potrebbe trattare la tua vecchia build e la tua nuova come app diverse, il che significa che la tua nuova build apparirà avvisi se la vecchia build aveva memorizzato qualcosa nel portachiavi. – abarnert