2015-06-16 13 views
5

Il mio progetto è basato su Objective-C e contiene un codice swap di terze parti.app con Objective-C e arresto rapido del codice all'avvio in modalità di rilascio, modalità debug fine

L'app funziona correttamente in modalità di debug, tuttavia, quando archivi l'app come modalità di rilascio, l'app si arresta in modo anomalo alla schermata di avvio.

Imposta il livello di ottimizzazione rapido su Nessuno ha ancora lo stesso problema. Ho installato crashlytics 3.7, ma si è bloccato al momento del lancio, non ha avuto la possibilità di caricare l'arresto anomalo. Sono molto disperata Qualche idea?

Aggiornamento:

ho cercato di rimuovere tutte le cose veloci e archiviazione, tutto è come al solito oggi. Tuttavia, quando trascino i file rapidi nel mio progetto basato su Objective-C, esegui (esegui il debug) l'app va bene. Ma se l'archivio (rilascio) e installarlo su iPhone, arresto immediato al momento del lancio. Qualcosa che mi manca?

+0

Cosa registro dispositivo dire? –

+0

Puoi pubblicare il tuo progetto su GitHub? – Bannings

+0

La mia app è caricata per il download, quindi non ho un registro. Ma mi ricordi di impostare la modalità di debug sulla modalità di rilascio da testare. Mi dispiace, non posso pubblicare un progetto. trattieni – Wingzero

risposta

4

OK, dopo migliaia di archiviazioni e test, ho scoperto che è causato dalla distribuzione interna.

È mssing un attributo 'OU' nel certificato. Ho dovuto ricreare un nuovo certificato e ora ha "OU" lì. Sembra che Apple non lo menzioni affatto quando si tratta di vecchi progetti che adottano il codice swift.

Citazione di Enterprise Distribution not playing nice with iOS8 in Swift App

Tutto spiegato in dettaglio in questo articolo:

https://www.airsignapp.com/ios-apps-using-swift-crash-when-signed-with-inhouse-certificate/

We can confirm that after create a new cert and .mobileprovision, no more issues. 

We found origins that caused this issue, related to a missing attribute in “Subject” field InHouse Certificates : 

BEFORE Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR 

AFTER Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR 
+0

Dopo aver passato un giorno intero a ridurre un problema di lancio al cambiamento che ha introdotto rapidamente in un'app obiettivo c, ho finalmente trovato questo post. Xcode ha visualizzato questo avviso quando provava a lanciare un build di distribuzione aziendale, "l'avvio del processo non è andato a buon fine: scaduto in attesa del lancio dell'app". Questa risposta l'ha risolta. Grazie. –

1

Pubblicherò questa risposta, perché non ho il rappresentante per postare commenti. Ho avuto un problema simile, anche se non correlato a Swift. Potrebbe valere la pena di verificare però.

Per me il problema ha avuto a che fare con la cancellazione dei file in Xcode. Ho rimosso alcuni file dal progetto Xcode, ma erano ancora presenti nella cartella sul mio disco rigido. Quando si esegue il progetto tramite Xcode, caricarebbe questi file come se fossero parte del progetto, ma durante l'archiviazione non li includerebbe. Ciò ha reso l'app perfettamente funzionante quando si esegue Xcode, ma si blocca quando si esegue la versione archiviata, mentre tentava di caricare qualcosa che non esisteva.

Quindi, una cosa da verificare è che i file che devono essere caricati all'avvio dell'app sono visibili nel navigatore di progetto in Xcode. Spero possa essere d'aiuto!

+0

come controllare? – Wingzero

+0

Non so se c'è un modo per controllarlo automaticamente, ma puoi guardare attraverso AppDelegate e le classi iniziali per i file che vengono caricati, e assicurarti che facciano parte del progetto (o nel navigatore di progetto (cmd + 1 per richiamarlo) o nella sezione Copia pacchetto di risorse delle fasi di creazione). – Anton

+0

La mia app ha sempre funzionato in modalità di rilascio. Questa volta aggiungo solo del codice rapido e si blocca al momento del lancio. Penso che forse non sia il tuo caso – Wingzero

Problemi correlati