2014-06-05 17 views
47

Ho creato un'applicazione iOS "helloworld" con cordova utilizzando il numero documentation. L'app viene eseguita correttamente quando eseguo cordova emulate ios. Quello che non posso fare, è mentre si distribuisce quando corro cordova build --release. Lì non crea alcun file .ipa. Tutto quello che trovo è un file Helloworld.build nella directory PROJECT_ROOT/platforms/ios/build. Mi sto perdendo qualcosa qui?Come posso distribuire (creare .ipa) l'app per iPhone usando 'cordova build ios --release'?

risposta

59

Ho trovato questo comando, che ha lavorato per me:

cordova build ios --device 
cd platforms/ios/build/device 
/usr/bin/xcrun -sdk iphoneos PackageApplication "$(pwd)/$PROJECT_NAME.app" -o "$(pwd)/$PROJECT_NAME.ipa" 

Fonte

: http://www.splinter.com.au/xcode-4-command-line-builds-of-iphone-apps/

Ho fatto eseguire @MD. Lo script di Ruby di Mohiuddin Ahmed, che avrebbe cambiato il mio file xcodeproj. Non sono sicuro che fosse necessario, ma non credo.

Modificato per chiarire il processo aggiungendo il comando cordova build come suggerito dai commenti.

+13

destro risposta. Giusto per chiarire: esegui 'cordova build ios --device' per generare l'app in' platform/ios/build/device' – M165437

+0

Sì, funziona alla grande usando 'cordova build ios --device' –

+0

Ha funzionato benissimo per me! – vinesh

5

ho finalmente capito un modo per automatizzare questo utilizzando xcodeproj, Xcode e questo script ruby:

require 'xcodeproj' 
xcproj = Xcodeproj::Project.open("HelloWorld.xcodeproj") 
xcproj.recreate_user_schemes 
xcproj.save 

E quindi nella directory PROJECT_ROOT/platforms/ios/ questo comando mi ha aiutato a generare la mia *.ipa:

xcodebuild -project HelloWorld.xcodeproj -exportArchive -exportFormat ipa -archivePath $(pwd)/HelloWorld.xcarchive -exportPath $(pwd)/HelloWorld.ipa CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -alltargets -configuration Release 

Pensavo di poter firmare il nostro. ipa più tardi :)

0

È possibile provare un nuovo strumento da http://fir.im.

Hanno uno strumento di abete cli scritto in Ruby. È possibile installarlo con il seguente comando:

sudo gem install fir-cli --no-ri --no-rdoc 

Iscriviti un account (tutto gratis come il buon vecchio PROVA Scelta dei colori) e ottenere un gettone dal tuo profilo. Dal prompt dei comandi eseguire:

fir login 

fornire il proprio token.

CD

nella directory in cui trova l'.xcodeproj.

fir build_ipa . 

Dopo un po '(se il successo build) troverete il vostro IPA nella cartella ./build_ipa.

33

Se si utilizza iOS Cordova 3.9.0 o più recente, è possibile utilizzare questo comando per creare il .ipa direttamente dalla CLI senza comandi extra:

cordova build ios --device --release 

avrete bisogno di un file sul build.json root del vostro progetto

{ 
    "ios": { 
    "debug": { 
     "codeSignIdentity": "iPhone Developer", 
     "provisioningProfile": "your-dev-provisioning-profile-UUID-here" 
    }, 
    "release": { 
     "codeSignIdentity": "iPhone Distribution", 
     "provisioningProfile": "your-distribution-provisioning-profile-UUID-here" 
    } 
    } 
} 

per ottenere l'UUID apro il file .mobileprovision su un editor di testo e la ricerca di 'UUID', non so se ci sia un modo più semplice di trovarlo.

Se si utilizza Xcode 8 alle build.json esigenze developmentTeam sul campo e packageType sul campo, ma non è più necessario il profilo di provisioning, anche, il codeSignIdentity dovrebbe essere iPhone Developer sia per debug e di rilascio:

{ 
    "ios": { 
     "debug": { 
      "codeSignIdentity": "iPhone Developer", 
      "developmentTeam": "FG35JLLMXX4A", 
      "packageType": "development" 
     }, 
     "release": { 
      "codeSignIdentity": "iPhone Developer", 
      "developmentTeam": "FG35JLLMXX4A", 
      "packageType": "app-store" 
     } 
    } 
} 

http://cordova.apache.org/docs/en/6.x/guide/platforms/ios/index.html#using-buildjson

+1

Proprio come una FYI, questo non funzionava per me. Voglio dire che ha creato un file .app ma non .ipa. Ho scoperto che la mia piattaforma iOS era 3.8, che ora non è aggiornata. Un errore facile da fare, quindi fai attenzione. –

+0

Aggiornato, questa funzionalità è stata aggiunta su cordova ios 3.9.0 – jcesarmobile

+1

Questa è un'opzione molto migliore .. come è necessario impostare una volta .. !! ! –

Problemi correlati