2012-12-14 8 views
9

Chciałbym użyć dołączonego polecenia ./emulator z Cordova/PhoneGap do uruchomienia mojej aplikacji w symulatorze iPada z wiersza poleceń.Symulacja iPada za pomocą komendy Cordova/PhoneGap emulator

podstawowe instrukcje tutaj:

mam zainstalowane symulator iOS stąd:

Dokumentacja powiedzieć s obsługuje symulowanie iPada z poziomu wiersza poleceń. Jednak domyślnie otwiera iPhone'a i zmiana urządzenia na "iPad" zamyka aplikację (i nie jest ona zainstalowana na ekranie głównym). Szukałem, ale nie mogę znaleźć dokumentacji do uruchomienia w celu symulacji iPada.

Jak uruchomić komendę Cordova ./emulator, aby otworzyć na iPada?

+0

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

+0

Dzięki, F481, ale w moim pytaniu zostałem powiązany z tym adresem URL. Nie mówi, jak uruchomić emulator jako iPad (w przeciwieństwie do iPhone'a). –

Odpowiedz

8

Skrypt Cordova emulate jest tylko opakowaniem dla polecenia ios-sim, którego można użyć bezpośrednio z wiersza poleceń. Zakładając, że aktualny katalog roboczy jest jednym ze skryptem naśladować w nim, można uruchomić kompilacji w emulatorze w trybie iPad z następujących czynności:

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

Poniżej niewątpliwie naiwny (nie wiem shell- wykonywanie skryptów), ale zhakowałem skrypt emulate w celu obsługi drugiego parametru wiersza polecenia, który pozwala mi określić rodzinę urządzeń. Być może nie wiesz, że skrypt akceptuje już pierwszy parametr, który pozwala określić ścieżkę do pliku .app projektu, ponieważ wykreśla ścieżkę, jeśli parametr nie jest określony.

Aktualizacja wersja skryptu z następującym (GitHub widelcem 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 

Następnie można uruchomić skrypt tak (zakłada się, że obecny katalog roboczy jest katalog Cordova zawierające skrypty):

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

Jeśli zawsze będziemy testować na iPadzie i wolisz nie trzeba podać ścieżkę do aplikacji za każdym razem, można po prostu zakodować preferowaną rodzinę urządzeń do skryptu tak jak i uruchomić emulator jak y ou robili poprzednio:

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

może się okazać, że uzywasz starej wersji PhoneGap/Cordova, ale w wersji 3.4 następujące prace dla mnie:

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

Czy istnieje link do dokumentu? – Asaf

+0

To działa, ale czy wiesz, jak używać iPada Retina? target = "iPad Retina" i --target = "iPad (Retina)" nie wydają się działać – StarQuake

+0

działa tutaj z 'cordova run ios --target =" ipad (retina) "' zobacz https://github.com/ apache/cordova-ios/blob/7c154550183fc71d13b6c612bad4c5c7c8154dd9/bin/templates/scripts/cordova/run # L84 – jujule

0

Dla mnie wszystkie wymienione Opcje tu nie działa, musiałem zadzwonić go z tego polecenia, aby pokazać iPad Siatkówka:

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

aby pobrać wszystkie typu devicetypeid'sios-sim showdevicetypes

Powiązane problemy