Invio app iOS: supporto 64 bit mancante


91

Ieri ho inviato un'app per la revisione, senza problemi. Mi sono quindi reso conto che avevo una piccola soluzione da fare (cambiare il livello di zoom massimo di una mappa da 19 a 18, nient'altro), quindi ho rimosso il binario da iTunes Connect e ho provato a inviarlo nuovamente.

Ora ho questo avviso:

warning_xcode

Non capisco perché, visto che le mie architetture sono:

  • architetture: armv7
  • architetture valide: armv6, armv7, armv7s, arm64

L'app funziona bene nel simulatore. Se provo a utilizzare le architetture standard (armv7, arm64) come consigliato nell'avviso, l'app non verrà compilata e ottengo:

  • Simboli non definiti per l'architettura x86_64
  • ld: simboli non trovati per l'architettura x86_64

Sto usando lib route-me e ho impostato le stesse impostazioni dell'architettura.


Anche noi abbiamo questo problema. :(
Azik Abdullah

Anche da ieri solo?
Tim Autin

1) prova a cancellare DerivedData per Xcode dopo averlo modificato; 2) forse stai usando una vecchia API esterna, SDK, framework, ecc
TonyMkenu

@Tim Sei riuscito a risolvere questo problema? puoi postare una soluzione per questo?
user2056563

Ciao, scusa non ho trovato la soluzione e non sto più lavorando a questo progetto. Per ora è solo un avvertimento, quindi ho potuto inviare l'app.
Tim Autin

Risposte:


106

Usa " Standard architectures" in questo modo:

  • Architettura: "Architetture standard" arm7, arm64
  • Architetture valide: " arm64 ", armv7 ...
  • Crea solo architettura attiva - NO (specialmente ... se il dispositivo connesso non è compatibile con arm64)

come questo:

inserisci qui la descrizione dell'immagine

  • Inoltre, è noto che scollegare iPhone e iPad dal Mac aiuta, soprattutto se sono versioni a 32 bit.

2
Grazie per la tua risposta, ma come indicato nella mia domanda l'ho già provato e il progetto non si compila con queste impostazioni: /
Tim Autin

3
@ Tim, sì, anche io avevo armv7 and arm64in Architechtures. Tuttavia, si verifica un avviso di supporto a 64 bit mancante durante la convalida dell'app per l'invio.
Azik Abdullah

@NAZIK hai arm64 in entrambe le righe (Architectures e Valid Architectures)? Ho avuto lo stesso errore e questa era la soluzione
TonyMkenu

@Tim prova a pulire i tuoi DerivedData e controlla il tuo ultimo framework esterno o SDK se hanno supporto a 64 bit
TonyMkenu

3
Inoltre, assicurati che il tuo dispositivo NON sia connesso durante l'archiviazione della build finale. Si veda la risposta @powertoold soffietto ( stackoverflow.com/a/26848865/1715004 )
Filipe Borges

68

Dopo aver confermato le architetture corrette, assicurati che il tuo dispositivo NON sia connesso al computer quando ARCHIVIA la build finale da inviare all'App Store.

Il motivo per cui appare questo avviso è perché il DISPOSITIVO che hai collegato probabilmente non è compatibile con arm64.


4
Giù i cappelli! : D mi hai risparmiato tempo
Vaibhav Limbani

1
Grande aiuto !! Mi ha fatto risparmiare un sacco di tempo su questo. Buon consiglio per aggiornare vecchie app.
Harry

Credo che tu possa mantenere i tuoi dispositivi non a 64 bit collegati se modifichi l'impostazione di build Build Active Architecture Onlyin No. Ciò costringerà xcode a costruire il binario a 64 bit indipendentemente dal dispositivo connesso.
jxmallett

3
Oltre alla risposta di @jxmallett, assicurati che il tuo archivio di configurazione dello schema sia impostato su Release, in cui Build Active Architectureè impostato su No. Set Archive Scheme
KarenAnne

1
Cordiali saluti, ho dovuto scollegare il mio dispositivo, passare al simulatore e quindi tornare a "Dispositivo iOS" affinché funzionasse.
nwkeeley

37

Come ha scritto Tony, è importante avere in entrambe le righe queste impostazioni. Poiché il mio (e ovviamente il tuo) progetto è stato creato prima che arm64 fosse aggiunto allo standard, non si riflette in "Architetture valide" anche se è mostrato come Standard.

Cosa ho fatto:

  • Sono andato alla configurazione Project (vs. Target)
  • Digitato "arm64" in Valid Architectures (si riflette automaticamente in target e schemi

Dopo clean / build ricevo anche alcuni avvertimenti sulla conversione impropria di float in CGFloat, ecc., Quindi le impostazioni ovviamente vengono applicate.

Anche l'avviso di convalida è scomparso!

inserisci qui la descrizione dell'immagine


1
> non si riflette in "Valid Architectures" anche se è mostrato come Standard Questo era il punto per me. Grazie!
Romain

1
Nel caso in cui aiutasse gli altri, ho dovuto cambiare sia Project che Target per mettermi al lavoro
djburdick

@djburdick Thanks. Ha funzionato per me quando nient'altro ha funzionato.
Dave Chambers,

27

Scollega il tuo dispositivo fisico dal Mac. In XCode nell'elenco dei dispositivi scegli Dispositivo iOS e crea di nuovo l'archivio. Ha funzionato per me.


5

Oggi risolvo il problema con i seguenti passaggi:

Impostazioni edificio:

Architetture: architetture standard (arm7, arm64) - $ (ARCH_STANDARD)

Architetture valide: armv7 armv7s arm64

  1. Pulisci e crea la tua app con l'iPhone connesso
  2. Scollega il tuo iPhone e controlla la barra in alto se è in "Dispositivo iOS"
  3. Archivio
  4. Convalida e invia

@ Timuçin. Scusa per la mia risposta in ritardo, hai ragione è: armv7 armv7s arm64.
Leonel Folmer


2

Va bene, è stato folle. Ho provato ogni singola risposta. Ma ha funzionato solo quando ho inserito arm64prima armv7e armv7sin Valid Architectures.

PS: xcode version : 7.2


1
Sì. solo allora e solo dopo aver collegato un dispositivo è stato visualizzato il registro degli errori effettivo. Quindi sono apparse alcune righe di codice deprecate e che richiedono una correzione (rossa) e alcuni problemi con la libreria RSA.
maxweber

1

Ho risolto il problema cambiando,

Architetture: arm7, arm64

Architettura valida: arm7, arm64

Crea solo architettura attiva: sì


1

Ho inviato successo da config come immagine: inserisci qui la descrizione dell'immagine

(Archiviato con dispositivo reale)


1
Dovrebbe impostare la modalità di rilascio su no
ZYiOS

1

Mi sono sbarazzato di ogni avvertimento. Ha attraversato tutto più e più volte. Ho trovato la risposta con una sola parola qui sopra.

"Crea solo architettura attiva - NO (specialmente ... se il tuo dispositivo connesso non è compatibile con arm64)"

Il mio iPad non è a 64 bit. Metti NO per Build Active Architecture e la mia proposta ha funzionato!


0

Modificare il target di sviluppo iOS almeno su 5.1.1 o in alternativa eliminare l'impostazione delle architetture standard e riapplicarla. Potresti aver visto un avviso che indica che arm64 non è compatibile con il tuo target di build. Nella pagina della panoramica, controlla le impostazioni di build e di destinazione della "destinazione di distribuzione". Nel mio caso, l'obiettivo era 6.0, ma il progetto era 5.0.

Inoltre, seleziona "Architetture valide" sia nella destinazione che nel progetto. Avevo le giuste impostazioni sul progetto ma non sull'obiettivo. Dopo questo, ha funzionato per me.

Passa da un progetto a un obiettivo nella pagina di panoramica nell'angolo in alto a sinistra del riquadro.


Intendi davvero 5.1.1? 5.1 non è abbastanza recente?
Dirk

È passato molto tempo. Non so né ricordo la logica di questo. Basta fare i passaggi e qualcosa potrebbe tornare al suo posto. Giocherellare con le architetture e tutte le pagine citate.
user1122069

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.