解决 iOS Appium 模拟器反复的重启

关于Appium 的配置使用,在此不多叙述,可以参考以下链接

https://www.jianshu.com/p/3c04e029c3ea
https://www.jianshu.com/p/cbbf0134ddfa
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
https://www.jianshu.com/p/ae8846736dba

下面我要说的是配置完之后,在使用Appium 启动时,出现了模拟器上的app反复重启的问题,定位了一下问题有如下错误

[WD Proxy] Got an unexpected response: {"value":"+[XCAXClient_iOS sharedClient]: unrecognized selector sent to class 0x100f58130\n\n(\n\t0 CoreFoundation 0x0000000212788edc + 252\n\t1 libobjc.A.dylib 0x0000000211959a40 objc_exception_throw + 56\n\t2 CoreFoundation ...

查了好多资料,都提示下载最新的WebDriverAgent

https://github.com/facebookarchive/WebDriverAgent

下载完之后,重新执行

sh ./Scripts/bootstrap.sh -d

配置证书,重新build之后 ,替换appium 路径下面的WebDriverAgent,以上操作都尝试之后依然报错如旧....

反思,再三反思

/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

原来Appium其实自带WebDriverAgent的,应该这样子说,不知道从Appium 的某一个版本更新之后,就不再支持facebook 出的这个WebDriverAgent了,因此你替换100次也无济于事,索性直接使用Appium 的WebDriverAgent

cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

mkdir -p Resources/WebDriverAgent.bundle

sh ./Scripts/bootstrap.sh -d

执行上面这个命令时,要骚微等一下下,去上个厕所,倒杯水,和前台妹子聊聊天等等,过了一会可能就成功了,如果没成功,就是你网络问题了,多点耐心

1.进入WebDriverAgent 打开xcode,菜单栏product --> Destination --> 选择device下的xxx的iPhone
2.product --> Scheme --> WebDriverAgentRunner
3.最后运行:product --> Test || command + U

结果:没问题的话,手机/模拟器上会出现一个无图标的 WebDriverAgent 应用,启动之后,马上又返回到桌面。这是正常的。然后xcode界面可以看到服务地址,表示运行成功:

2019-07-12 14:18:19.083193+0800 WebDriverAgentRunner-Runner[33741:1469798] ServerURLHere->http://192.168.1.148:8100<-ServerURLHere

在浏览器输入

http://192.168.1.148:8100/status

出现以下结果表示成功了

{
  "value" : {
    "state" : "success",
    "os" : {
      "name" : "iOS",
      "version" : "12.2",
      "sdkVersion" : "12.2"
    },
    "ios" : {
      "simulatorVersion" : "12.2",
      "ip" : "192.168.1.148"
    },
    "build" : {
      "time" : "Jul 12 2019 14:15:55",
      "productBundleIdentifier" : "com.facebook.WebDriverAgentRunner"
    }
  },
  "sessionId" : "E9FD8A75-0E96-4FD2-B145-08EAF8B1F667",
  "status" : 0
}

打开Appium ,设置调试参数

{
  "platformName": "iOS",
  "platformVersion": "12.2",
  "deviceName": "iPhone XR",
  "automationName": "XCUITest",
  "app": "可写可不写,Appium 可以根据bundledid 自动查找对应手机上的app",
  "bundleId": "这个你懂的com.xxx.xxx",
  "udid": "手机或者模拟器的uuid"
}

以上这个调试参数,切记大括号里面的参数,首起一定要有空格,不然会保存失败,点击start session ,幸运之神降临在你的身上,成功的话,你就可以看到以下界面了


屏幕快照 2019-07-12 下午2.49.56.png

你可能感兴趣的:(解决 iOS Appium 模拟器反复的重启)