2012-12-14 10 views
9

Vorrei utilizzare il comando ./emulator incluso con Cordova/PhoneGap per eseguire la mia app nel simulatore iPad dalla riga di comando.Simula iPad utilizzando il comando emulatore Cordova/PhoneGap

Le istruzioni di base sono qui:

ho installato il simulatore iOS da qui:

La documentazione dicono s supporta la simulazione di un iPad dalla riga di comando. Tuttavia, si apre di default su iPhone e la modifica del dispositivo su "iPad" chiude l'app (e non è installata sulla schermata principale). Ho cercato ma non riesco a trovare la documentazione da avviare per simulare un iPad.

Come si esegue il comando Cordova ./emulator per aprire su iPad?

+0

http://docs.phonegap.com/en/2.2.0/guide_command-line_index.md.html # Command-Line% 20Usage_ios – F481

+0

Grazie, F481, ma ho collegato a quell'URL nella mia domanda. Non dice come lanciare l'emulatore come un iPad (al contrario di un iPhone). –

risposta

8

Lo script Cordova emulate è solo un wrapper per il comando ios-sim che è possibile utilizzare direttamente dalla riga di comando. Assumendo la directory di lavoro corrente è quella con lo script emulare in esso, è possibile avviare il vostro costruire nell'emulatore in modalità iPad con il seguente:

ios-sim launch ../build/myApp.app --family ipad --stderr console.log --stdout console.log & 

Quello che segue è senza dubbio ingenuo (non so shell- scripting), ma ho hackerato lo script emulate per supportare un secondo parametro della riga di comando che mi consente di specificare la famiglia di dispositivi. Potresti non essere consapevole del fatto che lo script accetta già un primo parametro che ti consente di specificare il percorso del file .app del tuo progetto mentre calcola il percorso se il parametro non è specificato.

aggiornare la versione di script con il seguente (GitHub forcella here):

#! /bin/sh 
# 
# Licensing info removed for brevity 
# 

set -e 

XCODE_VER=$(xcodebuild -version | head -n 1 | sed -e 's/Xcode //') 
XCODE_MIN_VERSION="4.5" 

if [[ "$XCODE_VER" < "$XCODE_MIN_VERSION" ]]; then 
    echo "Cordova can only run in Xcode version $XCODE_MIN_VERSION or greater." 
    exit 1 
fi 

CORDOVA_PATH=$(cd "$(dirname "$0")" && pwd -P) 
PROJECT_PATH="$(dirname "$CORDOVA_PATH")" 
XCODEPROJ=$(ls "$PROJECT_PATH" | grep .xcodeproj ) 
PROJECT_NAME=$(basename "$XCODEPROJ" .xcodeproj) 

APP_PATH=$1 
DEVICE_FAMILY=$2 

if [ $# -lt 1 ]; then 
    APP_PATH="$PROJECT_PATH/build/$PROJECT_NAME.app" 
    DEVICE_FAMILY=iphone 
fi 

if [ ! -d "$APP_PATH" ]; then 
    echo "Project '$APP_PATH' is not built. Building." 
    $CORDOVA_PATH/build || exit $? 
fi 

if [ ! -d "$APP_PATH" ]; then 
    echo "$APP_PATH not found to emulate." 
    exit 1 
fi 

# launch using ios-sim 
if which ios-sim >/dev/null; then 
    ios-sim launch "$APP_PATH" --family "$DEVICE_FAMILY" --stderr "$CORDOVA_PATH/console.log" --stdout "$CORDOVA_PATH/console.log" & 
else 
    echo -e '\033[31mError: ios-sim was not found. Please download, build and install version 1.4 or greater from https://github.com/phonegap/ios-sim into your path. Or "brew install ios-sim" using homebrew: http://mxcl.github.com/homebrew/\033[m'; exit 1; 
fi 

È quindi possibile eseguire lo script come questo (si assume la directory di lavoro attuale è la directory Cordova che contiene gli script):

./emulate ../build/myApp.app ipad 

Se si sta andando sempre a testare su iPad e si preferisce non dover specificare il percorso per la vostra applicazione ogni volta, si può solo hardcode vostra famiglia dispositivo preferito nello script in questo modo e lanciare l'emulatore come y ou hanno fatto in precedenza:

ios-sim launch "$APP_PATH" --family ipad --stderr "$CORDOVA_PATH/console.log" --stdout "$CORDOVA_PATH/console.log" & 
18

Può essere che si sta utilizzando una vecchia versione di PhoneGap/Cordova, ma nella versione 3.4 i seguenti lavori per me:

cordova emulate ios --target="iPad" 
+0

c'è un collegamento al documento? – Asaf

+0

Funziona, ma sai come eseguire con la retina iPad? target = "iPad Retina" e --target = "iPad (Retina)" non sembrano funzionare – StarQuake

+0

funziona qui con 'cordova run ios --target =" ipad (retina) "' vedi https://github.com/ apache/cordova-ios/blob/7c154550183fc71d13b6c612bad4c5c7c8154dd9/bin/templates/scripts/cordova/run # L84 – jujule

0

Per me tutti i menzionati opzioni qui non ha funzionato, ho dovuto chiamare con questo comando per visualizzare l'iPad Retina:

``ios-sim launch [DIR_OF_APP]platforms/ios/build/emulator/My-App.app --devicetypeid "com.apple.CoreSimulator.SimDeviceType.iPad-Retina, 8.2" 

per recuperare tutti i tipo devicetypeid'sios-sim showdevicetypes