Domanda

Sto cercando di caricare un'applicazione per l'iPhone App Store, ma mi da questo messaggio di errore da iTunes Connect:

Il binario che hai caricato non è valido.La firma non è valida o non è stato firmato con una Mela presentazione di certificato.


Nota:Dettagli di domanda originale sono stati rimossi, come questa pagina è trasformato in un repository per tutte le informazioni sulle possibili cause di quel particolare messaggio di errore.

Per informazioni di carattere generale su presentazione di iPhone applicazioni su App Store, vedere Procedura per caricare un'applicazione iPhone e AppStore.

È stato utile?

Soluzione

È stata la mia esperienza che Xcode, occasionalmente, si confonde sul quale la firma del certificato.Ho preso l'abitudine di chiudere e riavviare Xcode dopo qualsiasi modifica al codice di impostazioni di firma (e fare una nuova build) per risolvere questo problema.

Altri suggerimenti

Volevo solo dire che anch'io ho avuto il problema con zip da il comando line.Il problema sta nel modo in cui gestisce i collegamenti simbolici per impostazione predefinita.Utilizzo:

zip -y -r myapp.zip myapp.app

Risolto il problema.

Ho avuto lo stesso problema e lo risolto in questo modo:

La proprietà certificati sono stati installati sulla mia macchina di sviluppo e mobileprovision.embedded è stato incluso nell'archivio.Dopo un'ora di Ricerche e scavando ho trovato la fonte dell'errore.All'interno di Xcode avevo copiato la configurazione del Rilascio e creato una nuova configurazione della Distribuzione, e poi cambiato la firma di identità per il mio certificato di distribuzione.Tuttavia, anche se è stata aggiornata l'interfaccia utente che il file di progetto non è stato aggiornato correttamente.

Se si venire attraverso lo stesso errore, guarda nel [ProjectName].xcodeproj directory per il progetto.pbxproj file e aprirlo in un editor di testo preferito.Cercare la sezione Distribuzione.Il mio rotto uno era questo:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Developer: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Developer: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “DB12BCA7-FE72-42CA-9C2B-612F76619788″;
};
name = Distribution;
};

Si può vedere la firma di identità e un profilo di provisioning non sono corretti nella seconda sezione.Modificare una corrispondenza con la prima sezione, di ricostruzione, e si dovrebbe andare bene.Il finale sembrava questo:

C384C90C0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
CODE_SIGN_ENTITLEMENTS = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
PREBINDING = NO;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
SDKROOT = iphoneos2.2.1;
};
name = Distribution;
};
C384C90D0F9939FA00E76E41 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CODE_SIGN_IDENTITY = “iPhone Distribution: Edward McCreary”;
“CODE_SIGN_IDENTITY[sdk=iphoneos*]” = “iPhone Distribution: Edward McCreary”;
COPY_PHASE_STRIP = YES;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = GenPass_Prefix.pch;
INFOPLIST_FILE = Info.plist;
PRODUCT_NAME = GenPass;
PROVISIONING_PROFILE = “F00D3778-32B2-4550-9FCE-1A4090344400″;
“PROVISIONING_PROFILE[sdk=iphoneos*]” = “F00D3778-32B2-4550-9FCE-1A4090344400″;
};
name = Distribution;
};

guid cambiati per proteggere gli innocenti

Stesso problema, una soluzione diversa.

Nel mio caso, mi è stato comprimere il file utilizzando zip -r myapp.zip myapp.app Si scopre che, il comando di zip avvitato il bundle.La compressione dal finder di farlo funzionare.

Ho avuto lo stesso problema e dopo aver provato diverse cose - ho rimosso .plist all'aiuto a partire dalla Firma del Codice di Diritti (appena lasciato vuoto) ed è costruito bene e caricato INFINE.

Buona fortuna a tutti :-D

Un altro punto dati:per un po', la mia app è andato attraverso.Ora ho aggiunto il supporto per gli acquisti in-app, e improvvisamente si interrompe con un "binario non Valido/non valido firma" problema.Su di un'attenta ricerca, ho scoperto che il valore di identificatore di diritti di file plist è stato spento.

Questo, probabilmente, aveva a che fare con il fatto che ho sostituito il profilo di provisioning da un carattere jolly uno per un app specifiche per una (necessaria per l'acquisto in-app).Sbagliato app ID qualificati sotto il profilo precedente.Esso non corrisponde l'ID applicazione nella finestra info.plist, ma a quanto pare iTunes che ha perdonato.

Quindi, per ricapitolare:

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.*

è OK, mentre

info.plist: com.mydomain.foo
dist.plist: com.mydomain.bar
Profile: com.mydomain.foo

cause non Valido "binario".

Ho avuto lo stesso problema pure, durante la costruzione ho notato che la fornitura non è stato aggiunto nel costruire.

La difficoltà per me è stato quello di impostare la build per il dispositivo iphone come dove io di solito uso il simulatore, ma allora non comprendono il profilo di provisioning...

Questo potrebbe essere un noob errore.Normalmente non si può costruire al dispositivo, ma quando lo si fa per la distribuzione si può.

Bene, dopo aver ripetuto la procedura più volte, ero finalmente riuscito a caricare la mia app.

Non so esattamente cosa fissa, ma prima il tentativo riuscito, ho chiuso Xcode e Firefox e riavviato loro.Credo che una di quelle applicazioni avuto qualche bad juju.

Qui è un problema mi sono imbattuto in:Ho aggiunto il binario di Subversion prima di caricare.Comparessing/zippare il file binario quindi incluso il nascosto .svn directory, che incasinato il codice per la firma.

Ho provato varie cose dopo aver letto vari post, compresi quelli di cui sopra.Ciò che alla fine ha funzionato per me è stato a partire completamente al di sopra di!Ho eliminato ogni certificato e un profilo di provisioning associate con la mia app.

Ho ricreato un nuovo certificato di sviluppo e di un nuovo certificato di distribuzione.Ho scaricato il certificato intermedio di nuovo.Poi ho ricreato lo sviluppo del profilo e il profilo di distribuzione.

Dopo l'installazione di tre certificati (ho notato che la distribuzione ha avuto entrambe le chiavi pubbliche e private, questa volta) e i due profili di provisioning (il mio profilo di distribuzione non vengono segnati come non avere un certificato valido!), tutto ha funzionato.

Una volta ho preso la decisione di revocare tutto e solo ricominciare, ci sono voluti solo 5 minuti per creare cose nuove e re-installare.

Vedi questo link per la soluzione:

http://greghaygood.com/2010/09/04/invalid-binary-message-from-itunesconnect

La risposta breve è che "alla fine ho ricontrollato le mie info.plist e scoperto qualcosa.Ho aggiunto CFBundleIconFiles per le nuove linee guida, ma c'era una voce vuota nell'elenco matrice.Ho rimosso e ri-presentato, ed è stato finalmente accettato!"

Ho avuto un problema simile, ma in Monotouch.Ho scoperto che il mio profilo di Rilascio è stato impostato per utilizzare sviluppatore cert.Dovrebbe assomigliare a questo:enter image description here

Sembra che questo problema ha molte cause.Ecco la soluzione al mio:

Questo vale per chi appartiene a più team di sviluppo (ad es.le vostre applicazioni, e le vostre aziende).

Se il vostro edificio generazione con un unico set di credenziali e ri-firma con uno diverso (ad es.per adhoc/appstore di distribuzione), è necessario assicurarsi che la compilazione è stata originariamente costruita e firmati con le credenziali appartenenti alla stessa di iOS, il team di sviluppo che la distribuzione delle credenziali si sono ri-firma con appartengono a.

Così non si costruisce con "Indy Dev Inc" credenziali quindi si tenta di distribuire con "Company Inc" credenziali.Assicurarsi che l'installazione sia di "Company Inc" dev, e la distribuzione delle credenziali, e il loro utilizzo.

Ho postato più informazioni su questo sul mio blog: http://omegadelta.net/2011/06/09/fiendish-ios-code-signing-invalid-binary-issue/

Ho avuto lo stesso problema.Ero pronto a gettare la spugna su questo problema, ma l'ho capito quando sono andato a controllare nel mio codice che utilizza Torbida.Ho sempre scremare le differenze sui file modificati prima del check-in.Quando fa così questa volta ho notato che il progetto.file pbxproj era cambiato....e nella Distribuzione di sezione la voce “PROVISIONING_PROFILE[sdk=iphoneos*]” è vuota.

Di cessare e il riavvio di Xcode non ha funzionato per me.Invece, sono andato nel mio progetto e di destinazione delle impostazioni e cambiato il codice per la firma di selezionare direttamente il mio profilo di Distribuzione, piuttosto che fare affidamento sulla funzione di selezione automatica.Facendo questo ha causato il progetto.pbxproj file da compilare con i valori corretti, anche se la funzione di selezione automatica presumibilmente selezionato l'esatto stesso profilo che ho selezionato manualmente.

Ho bisogno di una birra...

Dopo aver provato tutte le altre correzioni elencati qui abbiamo registrato una STI con Apple.Avendo seguito tutti i passaggi Nota tecnica TN2250 il nostro problema sia stato causato da una sigillato risorsa mancante o non valido.Nel nostro caso è stato ._.DS_Store.

L' ".." è chiamato Apple Doppie file, ed è il risultato della copia della Xcode cartella di Progetto, *decompresso*, su e indietro da un file di sistema che non supporta correttamente HFS+'s 'resource forks' (per il codice di firme).Questi extra ".." i file di risultato e causa di firma codice di errore di verifica.

Per pulire la problematica Apple Doppie file dal vostro progetto Xcode cartella, eseguire il dot_clean comando sul vostro progetto Xcode cartella, fare una nuova generazione, e quindi rearchive e riprovare la vostra presentazione.

dot_clean /the/path/to/xcode/project

Nota:Si può semplicemente trascinare la cartella del progetto nel terminale per compilare automaticamente il percorso

Non c'è nessun messaggio quando si esegue il comando, ma il progetto di costruire la possa mostrare un avviso circa il file build successiva.È possibile ignorare questo, l'app validare e inviare correttamente.

Risolto pulendo il progetto.xcodeproj file (tasto destro del mouse, aprire il pacchetto, il pacchetto conteneva i file da co-sviluppatore, dopo l'eliminazione di questi il problema è stato risolto

Per me la soluzione è la creazione di una distribuzione di certificazione:Apple Developer Provisioning Portal.

Per quello che vale, voglio aggiungere che cosa era che ha risolto questo problema per me.Ho avuto un ?(punto interrogativo) nel mio titolo dell'app che è stata la causa dell'errore.

Ho ricevuto un binario non valido, se l'app non utilizzare il telecomando di notifica push, ma ho lasciato il codice per la registrazione di spinta e la richiamata delegati per la registrazione/ricevere una notifica remota commentata, anche se il codice non viene utilizzato.

Questo è recente.La mia ultima presentazione la scorsa settimana è stato bene.Questa settimana, restituisce binario non valido.Fortunatamente, c'è una mail che spiega l'errore.

Ho avuto un problema simile, ma io non uso i diritti.plist.Tuttavia, dopo una decina di fallito di upload, ho controllato le mie informazioni.plist e scoperto qualcosa.Il mio CFBundleIconFiles array aveva una voce vuota.Ho rimosso e ri-presentato, ed è stato finalmente accettato!!!

Seriamente, quanto difficile sarebbe per Apple di esporre questi tipi di errori di convalida?

Edit:Non è immediatamente apparente, dove il CFBundleIconFiles sono perché non utilizzare un nome diverso.Nel progetto In vista delle informazioni, Ctl fare clic su e selezionare "Mostra Raw Chiavi/Valori di" e poi si vedrà, i riferimenti a CFBundleWhatever.In questo editor caso, è stato il tentativo di utilizzare un inesistente icon=72-@2x.png file.

I miei due cents:

Scarica l'ultima versione dell'Applicazione Loader.Ho appena aggiornato e ora ottenere un messaggio di errore diverso.

Ho appena andato attraverso questo fastidio (di nuovo), ma questa volta ho scoperto che il mio profilo di distribuzione era uno stato di "non Valido".Se pensi che tutto il resto è di destra, fare doppio controllare lo stato nel portale e rinnovare/ri-scaricare tutto ciò che non è in stato Attivo.

Ho ricevuto un Binario non Valido dopo un'app upload, con nessuna e-mail di follow-up perché non è riuscito.Ho provato a fare un paio di cose in una volta, e io non sono sicuro di quale dei seguenti effettivamente risolto:

  1. Riavviato Macbook Pro
  2. Spostato il codice sorgente per il mio progetto da un'unità NTFS HFS+ auto e ricompilato.

Ho avuto un problema con questo e il 4.3 GM SDK.Una delle nostre applicazioni non riescono a superare il caricamento ricevuto.Si è rivelato essere un profilo di provisioning problema.Ho rigenerato l'app store profilo e ha funzionato bene.

La mia soluzione prevedeva la creazione di una nuova App ID.Io non sono sicuro esattamente perché, che fissa, ma ho il sospetto che potrebbe essere stato non corrispondenti Bundle Identificatori — creazione di un nuovo ID App mi ha costretto a fare in modo che le mie app e iTunes si aspettavano la stessa cosa.

Un'altra soluzione:

Per me semplicemente impostando il 'Rilascio certificati di sotto 'la firma del codice' risolto.Essi sono stati inizialmente impostato a 'non codice segno'.

Per me il problema è stato risolto da salvare di nuovo un'immagine PNG con il non-interlacciato opzione.Nelle versioni precedenti interlacciato png sono stati ammessi, ma so che queste immagini possono causare il binario non valido.

Il mio apple messaggio:Corrotti File di Icona, icona del file iconGQ@2x.png sembra essere danneggiato.L'icona non deve essere un singolo file PNG.

Si può vedere se il PNG è interlacciato utilizzando il comando "file" nel terminale:Eva-Madrazos-MacBook-Pro-2:GQ 7 integración annunci di Eva$ file *.png Default.png:Immagine PNG dati, 320 x 480, 8 bit/colore RGB, non interlacciato

Buona fortuna, Eva

Voglio segnalare la possibilità di e-mail di Apple e chiedere loro di controllare i loro registri.L'ho fatto, dopo aver provato un sacco di cose prima.Era necessario ricordare loro, dopo quasi quattro settimane, ma finalmente mi hanno risposto e indicò il punto esatto del problema.

Il problema nel mio caso era che avevo già provato altre icone di app, e un riferimento alla vecchia immagine è rimasta ancora nel 'CFBundleIcons'.Ho utilizzato la funzionalità di trascinamento della selezione per impostare l'icona, ma non ho notato che il vecchio contenuto non era stato del tutto cancellato prima che il nuovo riferimento è stato aggiunto.

Per vedere il guasto di riferimento è stato necessario ampliare le frecce per visualizzare ogni sub-elemento nel file plist.Un consiglio è quello di fare clic destro il file e selezionare l'opzione per visualizzare i raw contenuto.In questo modo non avrete bisogno di espandere nulla.

Ho provato tutte le altre soluzioni proposte, ma niente.

Ho finito per la creazione di un nuovo progetto Xcode e copia tutto il codice e le risorse in esso.Che ha fatto il trucco, e la mia app ha messo in coda.

Posso anche raccomandare Mele note tecniche sulla firma del codice per il debug, verifica.

uuid non è consentito.Ho risolto da rimuovere tutte le [[UIDevice currentDevice] di tipo uniqueIdentifier];

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top