2012-12-14 6 views
9

Ich möchte den mitgelieferten ./emulator Befehl mit Cordova/PhoneGap verwenden, um meine App über die Befehlszeile im iPad Simulator auszuführen.iPad mit dem Cordova/PhoneGap Emulator-Befehl simulieren

die grundlegenden Anweisungen sind hier:

ich die iOS-Simulator von hier installiert haben:

Die Dokumentation sagen s unterstützt die Simulation eines iPad über die Befehlszeile. Es öffnet sich jedoch standardmäßig auf dem iPhone und das Ändern des Geräts auf "iPad" schließt die App (und es ist nicht auf dem Startbildschirm installiert). Ich habe gesucht, kann aber keine Dokumentation zum Starten finden, um ein iPad zu simulieren.

Wie führe ich den Befehl Cordova ./emulator zum Öffnen auf dem iPad aus?

+0

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

+0

Danke, F481, aber ich habe diese URL in meiner Frage verlinkt. Es sagt nicht, wie man den Emulator als ein iPad (im Gegensatz zu einem iPhone) startet. –

Antwort

8

Das Skript Cordova emulate ist nur ein Wrapper für den Befehl ios-sim, den Sie direkt über die Befehlszeile verwenden können. Angenommen, Ihre aktuelle Arbeitsverzeichnis ist das mit dem emulieren Skript in ihm können Sie Ihren Build im Emulator in iPad-Modus starten mit den folgenden:

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

Das folgende ist zweifellos naiv (ich weiß nicht, Shell- Skripting), aber ich habe das Skript emulate gehackt, um einen zweiten Befehlszeilenparameter zu unterstützen, der es mir ermöglicht, die Gerätefamilie anzugeben. Möglicherweise ist Ihnen nicht bewusst, dass das Skript bereits einen ersten Parameter akzeptiert, mit dem Sie den Pfad zur Datei .app Ihres Projekts angeben können, wenn der Pfad ermittelt wird, wenn der Parameter nicht angegeben ist.

Aktualisieren Sie Ihre Version des Skripts mit den folgenden (GitHub Gabel 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 

Anschließend können Sie das Skript wie folgt ausführen (übernimmt Ihre aktuelle Arbeitsverzeichnis der cordova-Verzeichnis ist die Skripte enthält):

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

Wenn Sie immer auf dem iPad testen gehen und Sie es vorziehen, nicht jedes Mal den Weg, um Ihre Anwendung zu geben zu haben, können Sie einfach Ihre bevorzugten Gerätefamilie in das Skript codieren wie so und starten Sie den Emulator als y ou zuvor getan:

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

Es kann sein, dass Sie eine alte Version von phonegap/cordova verwendet haben, aber in der Version 3.4 die folgenden Werke für mich:

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

Gibt es einen Link zum Dokument? – Asaf

+0

Das funktioniert, aber wissen Sie, wie man mit iPad Retina läuft? target = "iPad Retina" und --target = "iPad (Retina)" scheinen nicht zu funktionieren – StarQuake

+0

funktioniert hier mit 'cordova run ios --target =" ipad (retina) "' siehe https://github.com/ apache/cordova-ios/blob/7c154550183fc71d13b6c612bad4c5c7c8154dd9/bin/templates/scripts/cordova/run # L84 – jujule

0

Für mich all die genannten hier Optionen funktionierten nicht, ich habe es mit diesem Befehl zu nennen hatte die iPad Retina zeigen:

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

die devicetypeid's alle Art abzurufen ios-sim showdevicetypes