2015-07-28 11 views
9

Ho un'app iOS che ora ha circa 3 anni. È firmato con un profilo aziendale. Abbiamo rilasciato sette versioni del software, l'ultima volta quasi un anno fa. Attualmente stiamo cercando di fare una nuova versione, ma abbiamo scoperto che, a causa delle nuove regole di sicurezza in iOS8, i dispositivi iOS 8.1.3 e superiori non possono essere aggiornati e devono essere eliminati e reinstallati.La stringa di autorizzazione dell'identificativo dell'applicazione dell'upgrade non corrisponde all'applicazione installata -> rifiuto dell'aggiornamento

Nella ricerca ho riscontrato problemi simili per le persone che stanno firmando l'app con un profilo diverso, ma la nostra app viene firmata con lo stesso profilo. L'errore afferma che il nostro vecchio identificatore di applicazione conteneva un carattere jolly, che non riesco a capire dal momento che non abbiamo mai modificato l'ID del bundle (ma, nel portale degli sviluppatori, la nostra appId generale per tutte le nostre app è com.company. *).

Ho scoperto che se costruisco sia la versione 1 che la versione 2 dell'app con Xcode 6.4 posso eseguire l'aggiornamento con successo e se costruisco entrambe le versioni dell'app con Xcode 5.1 posso eseguire l'aggiornamento con successo, il problema è quando provo a installare una versione del app costruito con Xcode 6.4 su una versione costruita con Xcode 5.1

l'errore che otteniamo quando cerchiamo l'aggiornamento è:

"di aggiornamento dell'applicazione-identificatore di stringa diritto (6Q39SSX4QT.com.company .appName) non corrisponde alla stringa identificatore dell'applicazione dell'applicazione installata (6Q39SSX4QT.com.company. *) "

Ho visto alcuni riferimenti alla necessità di includere un file entitlements.plist nella nostra app, abbiamo un file plist AppName.entitlements, ma nessuna delle nostre app ha un file entitlements.plist (e le altre nostre app non mostrano questo problema sebbene siano stati aggiornati più volte da quando Xcode 5.1 è stato rilasciato).

Qualcuno ha qualche idea?

Grazie!

+0

Sono di fronte allo stesso problema con l'identificativo con caratteri jolly dell'azienda. La copia manuale di un file di diritti nella root di ipa non è di aiuto. – zcMACK

risposta

1

Dopo aver effettuato ulteriori letture, ho trovato this answer essere utile. Nel mio caso, sto costruendo tramite uno script grunt in modo da poter modificare la mia fase di archiviazione/firma/pacchetto per inserire le autorizzazioni durante la fase di codesign.

Se si seguono i passi che ho linkato, si vuole assicurarsi che il file di entitlements.plist contiene il carattere jolly come illustrato di seguito:

<key>application-identifier</key> 
<string>com.company.*</string> 

se si sta facendo la confezione applicazione manualmente, si consiglia di guarda iResign. Questo creerà per te il file entitlements.plist e lo inietterà durante la firma della tua app.

Vorrei che ci fosse una migliore documentazione disponibile da Apple su questo. Non riesco a ottenere lo stesso effetto in XCode, a prescindere da ciò che specificherò nelle impostazioni dei Titoli di codice del mio target.

16
  1. Aperto Xcode -> Finestra -> Dispositivi
  2. Fare clic sul dispositivo e rimuovere l'applicazione che si sta tentando di installare dalla lista di applicazioni installate.
  3. Prova a correre ora.
+11

Questo letteralmente elimina la vecchia app dal dispositivo. Puoi farlo anche alla vecchia maniera. Questo non risolve il problema di aggiornamento, funziona solo intorno ad esso. – Oded

0

Ho appena avuto questo errore: è stato perché avevo cambiato il team di sviluppo utilizzato per firmare l'app. Ad esempio, ho utilizzato il profilo di distribuzione della nostra azienda per firmare la versione di sviluppo e il profilo di distribuzione del cliente per firmare una versione di rilascio.

Verificare che l'id di squadra nelle autorizzazioni sia l'id corretto della squadra (stampato nel messaggio di errore) -> quindi l'app installata sia errata. Verificare inoltre di non aver specificato un identificatore di applicazione in un file di diritti. Non avevo affatto un file dei diritti.

In questo caso è sufficiente eliminare l'app sul dispositivo e reinstallarla.

Chris

Problemi correlati