Appium用真机调试过一次之后再用模拟器时出现如下错误:
You requested 'iPhone 6 (9D9EC7F6-20A3-4884-B0EC-551ABE9CE0B0) (8.1 Simulator)', but the available devices were: "iPhone 6 Plus (8.1 Simulator) [C3476E1E-12E3-4F38-84C9-7AD0DBCD573B]"]
原因是真机调试时需要填入udid,然后Appium就自动给所有模拟器也生成了一个udid,好大一个坑啊!问了好多人搜索了各种方法都么有解决,最后发现,在设备选择框里可以直接删掉udid!
我是用.dmg安装包安装Appium的,解决这个问题的过程中发现,它的GUI其实就是调用terminal,然后在里面执行一些脚本,例如doctor :
/Applications/Appium.app/Contents/Resources/node/bin/node' '/Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium-doctor.js'
我只想用它来测ios,但用doctor检测环境的时候会报错,提示$ANDROID_HOME 没有设置,这并不影响使用,可以修改上面这个脚本,搜索main,注释掉
runAndroidChecks
设置device、启动server的脚本其实就是:
'/Applications/Appium.app/Contents/Resources/node/bin/node' lib/server/main.js --address "127.0.0.1" --command-timeout "7200" --platform-version "8.1" --platform-name "iOS" --app "/Users/yangtt/AppiumSampleCode/sample-code/sample-code/apps/TestApp/build/Release-iphonesimulator/TestApp.app" --full-reset --show-sim-log --device-name "iPhone 6 (9D9EC7F6-20A3-4884-B0EC-551ABE9CE0B0)"