Xcode 4: crea il file IPA anziché .xcarchive


182

In Xcode 3.2.5 uso "Build And Archive" per creare un file IPA. In Xcode 4 è possibile utilizzare "Prodotto -> Archivia" per archiviare un'applicazione in un pacchetto .xcarchive.

Come posso creare un file .ipa con Xcode 4?




3
Ogni volta che creo una nuova versione ad hoc, la mia ricerca su Google mi porta qui. Ho visto questa pagina molte volte negli ultimi mesi.
Bella


Ecco un plugin Xcode per esportare IPA github.com/rajeshbeats/Xcode-Plugin-Export-IPA
Raj

Risposte:


391

La creazione di un IPA avviene allo stesso modo della creazione di un archivio .x: Prodotto -> Archivio. Una volta completata l'operazione di archiviazione, vai all'Organizer, seleziona il tuo archivio, seleziona Condividi e nel riquadro "Seleziona il contenuto e le opzioni per la condivisione:" imposta Contenuti su "Pacchetto App Store iOS (.ipa) e Identità alla distribuzione iPhone (che dovrebbe corrispondere al profilo di provisioning ad hoc / app store per il progetto).

È possibile che l'opzione "Pacchetto iOS App Store (.ipa)" sia disabilitata. Questo succede quando la tua build produce più di un singolo target: diciamo, un'app e una libreria. Tutti finiscono nella cartella dei prodotti di compilazione e Xcode si confonde ingenuamente su come comprimerli entrambi in un file .ipa, quindi disabilita semplicemente l'opzione.

Un modo per risolverlo è il seguente: passare attraverso le impostazioni di compilazione per ciascuna delle destinazioni, ad eccezione della destinazione dell'applicazione, e impostare il flag Ignora installazione su SÌ. Quindi esegui nuovamente il Prodotto -> Archive tango e vai all'Organizer per selezionare il tuo nuovo archivio. Ora, quando fai clic sul pulsante Condividi, l'opzione .ipa dovrebbe essere abilitata.

Spero che aiuti.


2
Questo ha risolto il mio problema, grazie! Nel mio caso il problema era in realtà uno dei bambini progetti (ProtocolBuffers per me) che avevano diversi obiettivi che necessario salto di installazione per essere insieme.
JosephH,

Potrebbe essere necessario Prodotto -> Pulisci e apri / chiudi lo spazio di lavoro prima che appaia l'opzione Prodotto -> Archivio.
Mark Chackerian,

Ho avuto il problema con più obiettivi. L'impostazione della lib condivisa su Skip Install YES e l'app su Skip Install NO ha risolto il problema. Questo non è stato un problema per me in Xcode 3.2, solo 4.1.
logancautrell,

44
"Condividi" è ora "Distribuisci ..." Quindi seleziona "Salva per impresa di distribuzione ad hoc"
Rembrandt Q. Einstein,

"Skip install" non è sufficiente: ho questo bug con Xcode 4.5 e si rifiuta di distribuire correttamente, da quando ho aggiunto una libreria con un bundle.
Adam,

44

L'impostazione Salta installazione su SÌ non ha funzionato per me. Spero che questo possa aiutare qualcuno.

Sono andato in dipendenza degli obiettivi del mio progetto: Coreplot-CocoaTouch. Quindi sono andato ai target Coreplot-CocoaTouch. Nei suoi obiettivi aperti Build Fasi. Quindi ha aperto Copia intestazioni. Lì avevo alcune intestazioni in pubblico, alcune in privato e altre in Progetto. Spostato TUTTI a Progetto.

Ovviamente, nelle impostazioni di costruzione dei target Coreplot-CocoaTouch, è stato verificato che l'opzione Ignora installazione fosse impostata su SÌ nelle opzioni di distribuzione.

E questa volta Archive ha creato un archivio che poteva essere firmato e prodotto .ipa.


1
Dopo aver spostato le intestazioni su Project, funziona perfettamente insieme ai passaggi precedenti. Grazie
iOSAppDev il

Come una brezza fresca! Chiunque getti github.com/sprhawk/ytoolkit.git per OAuth nel suo progetto lo richiederà. Grazie.
vmanjz,

2
Perché oh perché Xcode è ancora pieno di bug così gravi? 18 mesi dopo questo commento e il bug è ancora lì! Grazie per l'aiuto.
Ben Clayton,

Non hai idea di quanto ti amo in questo momento ... almeno uno dei miei problemi è risolto! Grazie!
Dmytro,

15

Per archivi Xcode 4.6 (e Xcode 5)

  • In Organizer, fai clic con il pulsante destro del mouse su un archivio, seleziona Mostra nel Finder
  • In Finder, fai clic con il pulsante destro del mouse su un archivio, seleziona Mostra contenuto pacchetto
  • Apri la cartella Prodotti> Applicazioni
  • L'applicazione è lì
  • Trascina l'applicazione nella cartella iTunes Apps

    inserisci qui la descrizione dell'immagine

  • Fai clic con il tasto destro del mouse sull'applicazione in iTunes Apps, seleziona Mostra nel Finder

  • L' .ipaè lì!

Questo è ciò di cui ho davvero bisogno per il mio xcode 4.6.3, tutto quanto sopra è semplicemente privo di senso per me, solo questo funziona. Grande !
Forrest,

attenzione, creerà un ipa ma potrebbe non installarsi correttamente, mostra l'icona sul telefono dopo la sincronizzazione ma dice l'installazione sotto e non finisce mai. comunque questa è la mia esperienza finora dopo aver provato questo, Xcode 5.1.1.
Colin Lamarre,

4

Nell'organizzatore puoi fare clic su Condividi e salva come pacchetto App Store iOS (.ipa). Potrebbe anche essere necessario selezionare 'Archivio' dal menu 'Prodotto' per generare l'archivio nell'Organizer. Infine, penso che per farlo devi avere una build archiviata correttamente firmata.


3
È stato facile capire come creare l'Archivio dal progetto. Il problema è che mentre si condivide l'opzione 'Pacchetto' è disattivato. Potresti avere ragione sul fatto che l'archivio debba essere firmato correttamente in modo tale opzione sia abilitata. Uso la chiave per la distribuzione Ad-Hoc e ho anche i diritti specificati per una distribuzione Ad-Hoc. Potresti condividere come rendere possibile la creazione del file IPA?
Krasnyk,

4

Ho avuto lo stesso problema, usando una vecchia versione della libreria route-me. Ho "saltato" tutte le librerie e le librerie all'interno delle librerie (proj4), ma avevo ancora lo stesso problema. Si scopre che route-me e proj4 stavano installando file di intestazione pubblici, anche quando le librerie venivano ignorate, il che faceva casino allo stesso modo! Quindi sono appena entrato nella scheda route-me e proj4 target "Build Phases", ho aperto "Copy Headers", ho aperto "Public" e ho trascinato quelle intestazioni da "Public" a "Project". Ora non vengono installati in $ (BUILD) / usr / local / include e sono in grado di creare un file ipa dall'archivio!

Spero che Apple risolva questo orribile problema di usabilità con XCode. Non dà assolutamente alcuna indicazione di ciò che non va, semplicemente non funziona. Odio i controlli oscurati che non ti dicono nulla sul perché sono oscurati. Che ne dici invece di ignorare i clic, i controlli disabilitati potrebbero far apparire un messaggio che ti dice perché diavolo sono disabilitati quando fai clic su di essi frustrati?


Sì! Tutti i file di intestazione contrassegnati come pubblici presentano il problema. Impostandoli come progetto risolto il problema!
JakubKnejzlik,

3

Supponendo che tu abbia fatto un prodotto di successo> Archivia quindi, da Organizer (Shift Apple 2) fai clic su Archivi.

Seleziona il tuo archivio. Seleziona Condividi. Nel riquadro "Seleziona il contenuto e le opzioni per la condivisione:" imposta Contenuti su "Pacchetto App Store iOS (.ipa) e Distribuzione identità su iPhone.

Fai clic su Avanti, inserisci un nome per l'app e fai clic su Salva.

I dettagli pieni di gloria con schermate sono qui: Xcode4UserGuide


2

Chi ha provato tutte le altre risposte e non ha avuto fortuna, per favore, seleziona questa casella di spunta, spero che ti aiuti (ha fatto il trucco per me xcode 6.0.1)

inserisci qui la descrizione dell'immagine


0

Ho avuto lo stesso problema ... Ho dovuto ricreare il progetto da zero.

Nota: il mio progetto è stato creato in XCode 3.1 e si collegava a una libreria statica che veniva costruita come sottoprogetto (a una destinazione comune). Ho cambiato questo per creare invece il sorgente quando ho ricreato il progetto XCode in XCode 4.

Ora facendo un prodotto / archivio / condivisione ... viene visualizzata l'opzione "Pacchetto App Store iOS (.ipa)" direttamente sopra "Applicazione" (che ora è disattivata) e "Archivio" (che esporta il file .xcarchive).


0

Stesso problema. Ho risolto l'impostazione del flag "skip install" su YES per ciascun progetto esterno, lasciando invariati gli altri target del progetto principale.

Ho anche dovuto andare su "Modifica schema ...", scegliere il pannello "Archiviazione" e configurare l'impostazione di build corretta per il mio scopo ad hoc.

Quindi un semplice Prodotto -> Archivio -> Condividi ha reso il lavoro previsto.


0

Dovrai costruire e archiviare il tuo progetto. Potrebbe essere necessario controllare quali impostazioni di firma del codice sono presenti nel progetto e nell'eseguibile.

Utilizzare l'organizer per selezionare la versione dell'archivio e quindi condividere quella versione del progetto. Dovrai selezionare nuovamente la firma del codice corretta. Ti permetterà di salvare il file .ipa dove vuoi.

Trascina e rilascia il file .ipa su iTunes, quindi sincronizza con il tuo iPhone.


0

Se è un gioco (potrebbe essere anche un'app) e hai alcune librerie statiche come cocos2d o altre librerie di terze parti ... devi solo selezionare * SOLO LA * libreria statica (NON L'APP) e nelle sue impostazioni di build in Implementazione, imposta Skip Installa flag su YESe Archivia lo datta ... !!


0

Sono andato a lanciare lo stesso problema. Nessuna delle risposte sopra ha funzionato per me, ma ho finito per trovare la soluzione da solo. Il file ipa non è stato creato perché c'erano file di libreria (libXXX.a) in Target-> Crea fasi -> Copia pacchetto con risorse

Spero che possa aiutare qualcuno :)

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.