我想使用包含的/使用Cordova/PhoneGap的模拟器命令,从命令行在iPad模拟器中运行我的应用程序。
基本说明如下:
- http://docs.phonegap.com/en/2.2.0/guide_command-line_index.md.html
我已经从这里安装了iOS模拟器:
- https://github.com/phonegap/ios-sim
文档说它支持从命令行模拟iPad。然而,默认情况下,它会打开iPhone,将设备更改为"iPad"会关闭应用程序(并且它不会安装在主屏幕上)。我已经搜索过了,但找不到可以用来模拟iPad的文档。
我该如何运行Cordova/模拟器命令打开到iPad?
可能您使用的是旧版本的phonegap/cordova,但在3.4版本中,以下对我有效:
cordova emulate ios --target="iPad"
Cordovaemulate
脚本只是ios-sim
命令的包装器,您可以直接从命令行使用它。假设您当前的工作目录是包含仿真脚本的目录,您可以在iPad模式下在模拟器中启动您的构建,如下所示:
ios-sim launch ../build/myApp.app --family ipad --stderr console.log --stdout console.log &
以下内容无疑是幼稚的(我不知道shell脚本),但我已经破解了emulate
脚本,以支持第二个命令行参数,该参数允许我指定设备系列。您可能没有意识到,脚本已经接受了第一个参数,该参数允许您在未指定参数的情况下计算项目的.app
文件的路径。
使用以下内容更新您的脚本版本(此处为GitHub fork):
#! /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 ' 33[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/ 33[m'; exit 1;
fi
然后,您可以像这样运行脚本(假设您当前的工作目录是包含脚本的cordova目录):
./emulate ../build/myApp.app ipad
如果你总是要在iPad上测试,并且你不想每次都指定应用程序的路径,你可以像这样将你喜欢的设备系列硬编码到脚本中,然后像以前一样启动模拟器:
ios-sim launch "$APP_PATH" --family ipad --stderr "$CORDOVA_PATH/console.log" --stdout "$CORDOVA_PATH/console.log" &
对我来说,这里提到的所有选项都不起作用,我不得不用这个命令调用它来显示iPad Retina:
``ios-sim launch [DIR_OF_APP]platforms/ios/build/emulator/My-App.app --devicetypeid "com.apple.CoreSimulator.SimDeviceType.iPad-Retina, 8.2"
检索所有devicetypeid's
类型ios-sim showdevicetypes