# Appium 服务器参数 使用方法: `node . [标志]` ### 所有的标志都是可选的,但是有一些标志需要组合在一起才能生效。 |标志|默认值|描述|例子| |----|-------|-----------|-------| |`--shell`|null|进入 REPL 模式|| |`--app`|null|iOS: 基于模拟器编译的 app 的绝对路径或者设备目标的 bundle_id; Android: apk 文件的绝对路径|`--app /abs/path/to/my.app`| |`--ipa`|null|(IOS-only) .ipa 文件的绝对路径|`--ipa /abs/path/to/my.ipa`| |`-q`, `--quiet`|false|不输出具体日志|| |`-U`, `--udid`|null|连接的物理实体机的 udid|`--udid 1adsf-sdfas-asdf-123sdf`| |`-a`, `--address`|0.0.0.0|监听的 ip 地址|`--address 0.0.0.0`| |`-p`, `--port`|4723|监听的端口|`--port 4723`| |`-dp`, `--device-port`|4724|(Android-only) 连接设备的端口号|`--device-port 4724`| |`-k`, `--keep-artifacts`|false|(IOS-only) 保留 Instruments trace 目录|| |`-r`, `--backend-retries`|3|(iOS-only) 遇到 crash 或者 超时,Instrument 重新参试启动的次数。|`--backend-retries 3`| |`--session-override`|false|允许 session 覆盖 (冲突的话)|| |`--full-reset`|false|(iOS) 删除整个模拟器目录。 (Android) 通过卸载应用(而不是清楚数据)重置应用状态。在 Android 上,session 完成后也会删除应用。|| |`--no-reset`|false|session 之间不充值应用状态 (IOS: 不删除应用的 plist 文件; Android: 在创建一个新的 session 前不删除应用。)|| |`-l`, `--pre-launch`|false|在第一个 session 前,预启动应用 (iOS 需要 --app 参数,Android 需要 --app-pkg 和 --app-activity)|| |`-lt`, `--launch-timeout`|90000|(iOS-only) 等待 Instruments 启动的时间|| |`-g`, `--log`|null|将日志输出到指定文件|`--log /path/to/appium.log`| |`--log-timestamp`|false|在终端输出里显示时间戳|| |`--log-no-colors`|false|不在终端输出中显示颜色|| |`-G`, `--webhook`|null|同时发送日志到 HTTP 监听器|`--webhook localhost:9876`| |`--native-instruments-lib`|false|(IOS-only) iOS 内建了一个怪异的不可能避免的延迟。我们在 Appium 里修复了它。如果你想用原来的,你可以使用这个参数。|| |`--merciful`, `-m`|false|不运行强制关闭没有响应的 instruments 的监视进程|| |`--app-pkg`|null|(Android-only) 你要运行的apk的java 包。 (例如, com.example.android.myApp)|`--app-pkg com.example.android.myApp`| |`--app-activity`|null|(Android-only) 打开应用时,启动的 Activity 的名字(比如, MainActivity)|`--app-activity MainActivity`| |`--app-wait-package`|false|(Android-only) 你想等待的 Activity 的 包名。(比如, com.example.android.myApp)|`--app-wait-package com.example.android.myApp`| |`--app-wait-activity`|false|(Android-only) 你想等待的 Activity 名字(比如, SplashActivity)|`--app-wait-activity SplashActivity`| |`--android-coverage`|false|(Android-only) 完全符合条件的 instrumentation 类. 作为命令 adb shell am instrument -e coverage true -w 的 -w 的参数|`--android-coverage com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation`| |`--avd`|null|要启动的 avd 的名字|`--avd @default`| |`--device-ready-timeout`|5|(Android-only) 等待设备准备好的时间,以秒为单位|`--device-ready-timeout 5`| |`--safari`|false|(IOS-Only) 使用 Safari 应用|| |`--device-name`|null|(IOS-Simulator-only) 待使用的 iOS 设备名字|`--device-name iPhone Retina (4-inch)`| |`--default-device`, `-dd`|false|(IOS-Simulator-only) instruments 启动时使用默认的模拟器|| |`--force-iphone`|false|(IOS-only) 无论应用要用什么模拟器,强制使用 iPhone 模拟器|| |`--force-ipad`|false|(IOS-only) 无论应用要用什么模拟器,强制使用 iPad 模拟器|| |`--language`|null|(IOS-only) iOS 模拟器的语言|`--language en`| |`--locale`|null|(IOS-only) iOS simulator 的区域|`--locale en_US`| |`--calendar-format`|null|(IOS-only) iOS 模拟器的日历格式|`--calendar-format gregorian`| |`--orientation`|null|(IOS-only) 初始化请求时,使用 LANDSCAPE 或者 PORTRAIT|`--orientation LANDSCAPE`| |`--tracetemplate`|null|(IOS-only) 指定 Instruments 使用的 .tracetemplate 文件|`--tracetemplate /Users/me/Automation.tracetemplate`| |`--show-sim-log`|false|(IOS-only) 如果设置了, iOS 模拟器的日志会写到终端上来|| |`--nodeconfig`|null|指定 JSON 格式的配置文件 ,用来在 selenium grid 里注册 appium|`--nodeconfig /abs/path/to/nodeconfig.json`| |`-ra`, `--robot-address`|0.0.0.0|robot 的 ip 地址|`--robot-address 0.0.0.0`| |`-rp`, `--robot-port`|-1|robot 的端口地址|`--robot-port 4242`| |`--selendroid-port`|8080|用来和 Selendroid 交互的本地端口|`--selendroid-port 8080`| |`--chromedriver-port`|9515|ChromeDriver运行的端口|`--chromedriver-port 9515`| |`--use-keystore`|false|(Android-only) 设置签名 apk 的 keystore|| |`--keystore-path`|/Users/user/.android/debug.keystore|(Android-only) keystore 的路径|| |`--keystore-password`|android|(Android-only) keystore 的密码|| |`--key-alias`|androiddebugkey|(Android-only) Key 的别名|| |`--key-password`|android|(Android-only) Key 的密码|| |`--show-config`|false|打印 Appium 服务器的配置信息,然后退出|| |`--keep-keychains`|false|(iOS) 当 Appium 启动或者关闭的时候,是否保有 keychains (Library/Keychains)||