L'eseguibile viene firmato con diritti non validi in Xcode


Risposte:


102

Ho affrontato questo problema per un'ora e finalmente ho trovato una soluzione. Si è scoperto che il team di sviluppo era diverso in ProjectTarget e ProjectTests.


13
Grazie mille! Questo mi ha solo aiutato e mi ha fatto risparmiare un sacco di tempo!
Marky

Wow! Grazie @Krish
Kqtr

signore, ho appena salvato il mio giovedì, non posso ringraziarla abbastanza
Samer Murad

dove posso trovare ProjectTarget e ProjectTests?
Pablo

ah! trovato! giorni su questo ed era solo questo setup! ??
Pablo

77

Il riavvio di Xcode è stato ciò che ha funzionato per me.


15
Quindi Xcode ha adottato la correzione universale di Microsoft. ;) Per la cronaca, questo è ancora un problema e il riavvio è ancora la soluzione (sto usando v7.3.1).
Eric Soyke

3
un altro +1, affronta di nuovo questo problema, poi google, sono atterrato qui.
jayellos

Dopo ore di controllo di ogni singolo dettaglio ... ha funzionato in XCode 8
Matej Ukmar

Qualcuno ha una soluzione solida a questo problema !!!!, Tutte queste soluzioni sembrano alcune soluzioni situazionali. Per favore aiuto.
Max

In realtà, fare in modo che il team di sviluppo del progetto e il team di sviluppo del test di progetto
abbiano

35

Ho scoperto il problema. L'app che ho creato su developer.apple.com non include l'audio inter-app. Il file plist dei diritti del progetto su Xcode ha l'audio inter-app impostato su YES (per impostazione predefinita). Dopo aver modificato l'impostazione sulla configurazione della mia app su developer.apple.com per abilitare l'audio inter-app. Quindi la mia app viene eseguita sui miei dispositivi. Immagino che questa sia la nuova regola di Apple per rendere coerenti le impostazioni della tua app sia su developer.apple.com che sulle impostazioni del tuo progetto xcode.


10
Ho attivato la funzionalità Inter-App Audio su ON e poi di nuovo su OFF, e in questo modo l'app ha funzionato ... WT *?
Ferran Maylinch

Wow, incredibile. Ancora una soluzione applicabile, anche se per me era la capacità dei gruppi di app.
Keller

Anch'io! È super strano. Immagino che tu possa attivare qualsiasi capacità per risolverlo.
Andre Simon

Ho provato tutto ancora affrontando lo stesso problema!, Eventuali suggerimenti
Max

24

Sono stato in grado di risolvere questo problema attivando / disattivando il diritto "Game Center" in Xcode 5 :-)


5
GRAZIE! Non hai idea di quanto fossi frustrato tutta questa mattina finché non sono incappato nella tua risposta. Sicuramente risolto per me.
Gasper Kolenc

1
Tieni presente che Xcode genererà un profilo di provisioning per te e invaliderà il tuo profilo di provisioning personalizzato.
Van Du Tran

@VanDuTran no, non lo farà.
Nik

Ciò si è verificato anche in un'applicazione Xamarin in Visual Studio per mac. Quindi non è solo isolato su Xcode.
Dan Beaulieu,

19

Nessuna soluzione ha funzionato per me fino a quando non ho controllato e impostato l'obiettivo dei test dell'app sullo stesso profilo di provisioning dell'app principale. Oppure, se stai usando il canto automatico, assicurati di aver selezionato la stessa squadra in Tests target.


Ottimo punto, questo accade quando cambi la tua squadra nel target principale ma non nel target del test. Cambiare la squadra nell'obiettivo del test con la squadra nell'obiettivo principale, ha risolto il problema per me.
dan

Grazie!! Questo è ciò che alla fine lo ha risolto per me. I diritti erano una falsa pista.
Reid

19

Per XCode 10, potrebbe essere necessario utilizzare il sistema di compilazione legacy

La modifica può essere effettuata da Impostazioni file / progetto. ERRORE ITMS-90174: "Profilo di provisioning mancante: le app iOS devono contenere un profilo di provisioning in un file denominato embedded.mobileprovision."

Un annuncio cordova / ionico: https://github.com/apache/cordova-ios/issues/407


1
vorrei aggiungere per gli utenti Cordova / Ionic che potresti anche dover modificare il tuo progetto Xcode generato per utilizzare la modalità legacy da "File> Impostazioni progetto / area di lavoro" e cambiarlo nel sistema Legacy Build "come dettagliato qui: stackoverflow.com/a / 52605878/2503520
Vyrnach,

12

La soluzione per l'ultimo Xcode :

Per prima cosa devi controllare cosa è abilitato nel tuo centro membri per il tuo AppID specifico :

inserisci qui la descrizione dell'immagine

Poi, nel tuo obiettivo appropriato in Xcode è necessario abilitare le stesse capacità: in questo caso: App Group, Game Center, In-App Purchase. Tutti devono essere abilitati nel tuo target in Xcode.

inserisci qui la descrizione dell'immagine

Tuttavia non importa per la modalità DEBUG :

inserisci qui la descrizione dell'immagine

è molto importante per la tua modalità RELEASE : inserisci qui la descrizione dell'immagine

Tieni presente che Game Centere In-App Purchasesono abilitati per impostazione predefinita nel Centro membri ma sono disabilitati nella destinazione di Xcode.


3
È possibile rimuovere il Game Center e l'acquisto in-app da developer.apple.com?
Noitidart

11

Penso che il tuo problema sia dovuto al profilo che stavi usando xCode4.6 e ora stai usando xCode5.

È necessario aggiornare i certificati / profili di provisioning tramite XCode> Preferenze> Account

XCode> Preferenze> Account> Fai clic sul tuo ACCOUNT DEV> pulsante Visualizza dettagli (in basso a destra)> Viene visualizzata la schermata ID firma / PP> premi Aggiorna.

Quindi scegli di nuovo dalle impostazioni di build il profilo corretto e pulisci e crea il tuo progetto.

Spero che questo ti aiuti.


1
Grazie per l'aiuto. Ho scoperto il problema. L'app che ho creato su developer.apple.com non include l'audio inter-app. Il file plist dei diritti del progetto su Xcode ha l'audio inter-app impostato su YES (per impostazione predefinita). Dopo aver modificato l'impostazione sulla configurazione della mia app su developer.apple.com per abilitare l'audio inter-app. Quindi la mia app viene eseguita sui miei dispositivi. Immagino che questa sia la nuova regola di Apple per rendere coerenti le impostazioni della tua app sia su developer.apple.com che sulle impostazioni del tuo progetto xcode.
Emmy

6

Ho dovuto abbinare le funzionalità dell'app in Xcode5 sotto

Capabilities -> 
In-App purchase -> ON
Game Center -> ON

con quello nel profilo provvisionale.


Inoltre ha risolto la risposta di errore "token non valido" degli APN.
Hiroshi

l'aggiunta del diritto al Game Center e la sua rimozione, ha funzionato anche per me. Non ho idea del perché.
Rukshan Marapana

5

xcode 6.1 (esempio HealthKit)

Ho ricevuto questo errore a causa dell'integrazione di HealthKit: avevo abilitato l'acquisto in-app, Game Center e Healkit hanno risolto il mio problema .. Lo stesso che ho abilitato nel profilo di fornitura.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Ho dovuto fare lo stesso per la condivisione del portachiavi. Avevo anche un'estensione per app, dovevo farlo in entrambi i posti per farlo funzionare.
CaseyB

5

(Xcode 6.1)

Il problema per me era nelle mie impostazioni di build; Il mio profilo di provisioning era impostato su un profilo di produzione dell'App Store durante il tentativo di distribuzione su un dispositivo. L'ho impostato su "Automatico" e ha risolto il mio problema. Puoi anche impostarlo sul tuo Dev Provision Profile.

Ho anche 2 certificati, quindi ho aggiunto il mio secondo certificato alla mia fornitura di sviluppo. Altri probabilmente non avranno questo problema.


Grazie! Il passaggio a 'Automatico' lo ha fatto per me
Emastmagy MastMagy

Strano che il passaggio ad automatico lo abbia risolto, ma ha funzionato per me. Il mio profilo di provisioning era impostato su com.mycompany. * E ricevevo questo errore. C'era FixMe rosso nella scheda Capacità, ma dopo aver risolto il problema ho comunque ricevuto l'errore di diritti non validi. Ho quindi provato a modificare il mio profilo di provisioning da com.mycompany. * Ad automatico e il problema è stato risolto. Ho ricontrollato che bundleID sia com.mycompany.blabla, quindi sembra essere una sorta di bug di Xcode. Sto usando Xcode 6.3.2.
Jim Range

5

Ho avuto un problema simile quando ho aggiornato a Xcode 10, ho risolto il problema andando su File> Impostazioni progetto, nell'opzione "Nuovo sistema di compilazione" seleziona "Sistema di compilazione legacy". Questo ha fatto il trucco per me, spero che questo aiuti qualcuno.


4

Il semplice clean-and-build sembrava risolverlo per me.


Questa è stata una soluzione anche per me.
Enijar

4

Se questo problema è lo stesso di me Forse dimentichi la squadra insieme nel tuo progetto di destinazione, prova a fare questa foto

inserisci qui la descrizione dell'immagine


3

Risolvo questo eliminando tutto "PROVISIONING_PROFILE=..."e "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...in project.pbxproj e riavvio Xcode e impostare nuovamente i profili di provisioning per la destinazione.


3

Se il riavvio di xcode non funziona, crea un nuovo profilo di fornitura e assicurati di includere i tuoi dispositivi di prova.


Il riavvio / la pulizia non ha funzionato per me, ma poi mi sono reso conto che non avevo aggiunto il mio nuovo telefono di prova al profilo Ad Hoc che stavo usando per creare. Ho rigenerato / scaricato un profilo aggiornato e l'errore è andato via. Nota: potresti ricevere un errore di "sicurezza" dopo aver eseguito questa operazione, il che significa che il dispositivo ha bisogno che tu autorizzi l'app, basta toccare l'app sul dispositivo per attivare l'avviso "sviluppatore di fiducia".
SafeFastExpressive

3

Nel mio caso, il dispositivo non è stato aggiunto. Quindi ho dovuto aggiungere il dispositivo e generare un nuovo profilo di provisioning.


3

Un'altra cosa da controllare: assicurati di avere le entità corrette selezionate in entrambi

Target -> Your Target -> Build Settings -> Firma

e

Progetto -> Il tuo progetto -> Impostazioni build -> Entità di firma del codice

Ho ricevuto questo messaggio quando avevo un profilo di sviluppo completo selezionato in uno e un ID Apple diverso (non sviluppatore) selezionato nell'altro, anche senza diritti richiesti nell'app.


2

Sembra essere un piccolo bug all'interno di Xcode. Prova ad archiviarlo comunque, anche se c'è un problema con entitlements. Se i tuoi diritti vanno bene, verranno caricati senza problemi. Apple lo accetta e la tua app verrà pubblicata su AppStore.

L'ho fatto e ha funzionato:)


2

Ciò potrebbe essere dovuto anche all'esecuzione di uno schema sbagliato.


1

Ho avuto lo stesso problema in XCode 5. Questo mi ha aiutato comunque.

XCode > Preferences > Location tab > DerivedData

Premi una piccola freccia sinistra per aprire DerivedData nel Finder. Spostati nella cartella del cestino del tuo progetto e ricostruiscilo.

Immagine dello schermo


Immagino che dovrebbe esserci un ragionamento adeguato sul motivo per cui l'eliminazione dei dati derivati ​​risolverà il problema.
Kavita

1

Ha avuto qualche problema. Risolvi: vai al target corretto -> funzionalità -> per me si è verificato un problema con "Acquisto in-app" e pulsante per risolverlo. Risolto il problema con il funzionamento off-on.


1

Nel mio caso: devo abilitare Inter-App Audio in

Capabilities -> Inter-App Audio

Penso che, poiché utilizzo Parse.com Notification, sia necessario un collegamento a AudioToolbox.framework


1

Abilitazione delle funzionalità -> Inter-App Audio ha risolto questo problema anche per me. Sto anche cercando di inviare notifiche push tramite parse


1

Le risposte qui sembrano un po 'inadeguate, quindi aggiungo i miei due centesimi:

La vera soluzione è che generalmente c'è una mancata corrispondenza tra ciò che è memorizzato nel tuo profilo di provisioning (controlla su developer.apple.com -> membri -> certificati -> il certificato che stai utilizzando [assicurati di controllare se dev / production) e cosa è abilitato nella tua app (fai doppio clic sul nome del progetto), sotto il menu orizzontale seleziona "Capacità" (accanto a "Generale").

Se hai recentemente modificato uno di questi, assicurati di aggiornare i tuoi certificati in XCode -> Preferenze -> Account -> Dettagli -> Aggiorna icona e riavvia XCode.


1

Nel mio caso il certificato APNS è scaduto, rimuovere il certificato scaduto e rigenerare il profilo di provisioning risolve il problema.


1

Nel mio caso, ho dovuto accettare il contratto di licenza per sviluppatori Apple.

Accedi all'account sviluppatore Apple e osserva il messaggio di notifica simile a quello riportato di seguito.

"Il contratto di licenza del programma per sviluppatori Apple è stato aggiornato. Per accedere a determinate risorse di iscrizione, **** deve accettare il contratto di licenza più recente entro il 28 giugno 2016."

In precedenza, non ero in grado di aggiungere / modificare i contenitori iCloud all'ID app sebbene avessi modificato / controllato le funzionalità, i profili di provisioning, i certificati ecc. Dopo l'accettazione del contratto, le cose hanno iniziato a funzionare senza problemi.

Si spera che possa far risparmiare tempo prezioso a qualcuno.


1

Di recente mi sono imbattuto esattamente nello stesso problema. Dopo aver letto molti consigli diversi che nessuno di loro ha funzionato per me, sono finalmente andato sotto il cofano e ho trovato la causa principale del problema.

Il file di provisioning mobile in realtà NON corrisponde al file di diritti generato da Xcode.

Sebbene tutti i file vengano gestiti automaticamente dallo strumento Apple, non sono corretti.

Se scarichi il file di provisioning dal portale Apple e lo apri (puoi aprirlo perché è solo un file plist firmato dal tuo certificato, quindi è leggibile dall'editor di testo) e confrontalo con il tuo file Entitlements (generato automaticamente da Xcode e residente nei file di progetto (quindi è di nuovo un file XML plist leggibile dall'editor di testo) Quindi puoi vedere la differenza.

Nel mio caso era il diritto di Game Center. È stato visualizzato sul portale come selezionato (selezionato per impostazione predefinita) ma in realtà questo diritto non era incluso nel file di provisioning mobile. Quindi si trattava di eliminarlo dal file dei diritti.

Quindi il risultato è: il contenuto del profilo di provisioning mobile a volte non corrisponde a ciò che viene visualizzato nella pagina di configurazione dell'ID APP.


1

Per coloro che hanno lo stesso problema con Provisioning Profile Automatic nelle impostazioni di build delle destinazioni:

Fai molta attenzione quando modifichi il file dei diritti di destinazione! Ciò potrebbe interrompere la corrispondenza con il profilo di provisioning generato automaticamente e riceverai questo errore.

Nel mio caso, ho dovuto utilizzare temporaneamente i contenitori di produzione iCloud con build di debug. Per farlo, ho inserito

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>  

nel file dei diritti e ha funzionato!
Per ricordarmi che in seguito avrei dovuto rimuovere queste righe, ho ulteriormente inserito semplicemente il seguente commento:

<key>TODO</key>
<string>The entry below must be out commented or deleted to use the iCloud development environment.</string>  

E questo ha rotto la corrispondenza e ha creato l'errore .


Dove si trova il file dei diritti?
Noitidart

Si trova nella cartella del progetto e si chiama "yourProject.entitlements". Puoi trovarlo nel navigatore del progetto di Xcode.
Reinhard Männer

Grazie. sembra che non sia stato creato fino a quando non ho selezionato "audio inter app". Ho un centro giochi e acquisti in app su developer.apple.com ma non lo uso, questi sono valori predefiniti. Quindi ho contrassegnato le mie capacità in xcode come "on" ma non importa cosa continuo a ricevere, "L'eseguibile è stato firmato con diritti non validi". errore. :(
Noitidart

1

Sto usando la notifica push nella mia app e al termine dello sviluppo ho provato a testare la notifica push per la configurazione del rilascio . A quel tempo ho ricevuto questo errore.

Stavo usando il profilo di provisioning di produzione per eseguire il rilascio . Quindi sono stato in grado di risolvere questo errore utilizzando il profilo di provisioning Adhoc .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.