xcode 如何让 Appium 以真正的 iOS 设备和模拟器设备为目标

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/48508016/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 10:31:51  来源:igfitidea点击:

How to get Appium to target a real iOS device vs a simulator device

iosiphonexcodeappiumappium-ios

提问by ALM

I am running on Appium1.7.2 and using a iPhone6s on 11.2.5 OS. I am trying to create a simple test to target a real iOSdevice vs a simulator but each time I run the code Appium/xCodewill open a simulator and use that instead of the real device.

我在Appium1.7.2 上运行并iPhone在 11.2.5 操作系统上使用6s。我正在尝试创建一个简单的测试来针对真实iOS设备与模拟器,但是每次我运行代码时Appium/xCode都会打开一个模拟器并使用它而不是真实设备。

How do I get appium to use the real device. I have tried supplying the UUID of the device without luck.

如何让 appium 使用真实设备。我试过提供设备的 UUID 没有运气。

Thank you,

谢谢,

Gradle

摇篮

    compile group: 'io.appium', name: 'java-client', version:'6.0.0-BETA2'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-server', version:'3.8.1'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-remote-driver', version:'3.8.1'
    compile group: 'org.seleniumhq.selenium', name: 'selenium-java', version:'3.8.1'

Java Code

Java代码

        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName", "iOS");
        capabilities.setCapability("deviceName", "iPhone 6s");
        capabilities.setCapability("platformVersion", "11.2");
        //capabilities.setCapability("app", "https://s3.amazonaws.com/appium/TestApp8.4.app.zip");
        capabilities.setCapability("browserName", "Safari");
        capabilities.setCapability("uuid", "26deaa8eb5003b3d56a561ada2fcff2174b00df1");
        capabilities.setCapability("deviceOrientation", "portrait");
        capabilities.setCapability("browserName", "safari");
        capabilities.setCapability("automationName", "XCUITest");

回答by dmle

If you want to run Appium/XCUITest on real device, follow this guideline

如果你想在真机上运行 Appium/XCUITest,请遵循这个指南

The reason why appium takes simulator is that you did not provide xcodeOrgId& xcodeSigningIdcapabilities:

appium采用模拟器的原因是你没有提供xcodeOrgId&xcodeSigningId能力:

{
  "xcodeOrgId": "<Team ID in apple dev account>",
  "xcodeSigningId": "iPhone Developer"
}

You might face XCUITest xcodebuild exited with code '65', so follow the guide/search on stackoverflow how to fix setup manually.

您可能会遇到XCUITest xcodebuild exited with code '65',因此请按照 stackoverflow 上的指南/搜索如何手动修复设置。

Good luck!

祝你好运!

回答by pankaj mishra

To test ios real devices , below capabilities are required

要测试ios真实设备,需要以下功能

  app=${app}    
  version=${version}    
  platform=${platform}    
  deviceName=${deviceName}    
  udid=${udid}    
  platformName=${platformName}    
  newCommandTimeout=2500
  name=${name}    
  automationName=${automationName}    
  xcodeOrgId=${xcodeOrgId}    
  xcodeSigningId=${xcodeSigningId}    
  usePrebuiltWDA=${usePrebuiltWDA}