Appium 在 iOS 上怎么实现多设备操作 · TesterHome

2025-03-23 12:40:38
推荐回答(1个)
回答1:

首先 Appium 支持 iOS 真机

  条件必须满足:

  苹发者账号发者证书
  苹设备确保设备已经配置发机器配置
  签名 .ipa 文件或者源代码
  A Mac with Xcode and the Xcode Command Line Developer Tools xcodexcode command line 苹系统别问我windows 测试 iOS 应用
  Provisioning Profile

  再强调真机需要效发发证书发 Provisioning Profile
  应用需要签名Appium 参试使用 Fruitstrap 安装应用
  使用 xcode 安装真机便

  拓展: Provisioning Profile

  运行

  要指定真机运行两种式:

  appium 启候指定 udid app bundle appium -U --app
  或者脚本指定两 desired capability

  desired_capabilities={
  'app':'com.xxx.iphone',
  'udid':'70643e56c1b0f3c3132c44c87e433a48b5531ee6',
  'platformName': 'iOS',
  'deviceName': 'iPhone'
  })
  注意: 设备未安装 app 指定 ipa 址安装
  则指定 bundle ID

  所于第种情况代码写:

  self.driver = webdriver.Remote(
  command_executor='',
  desired_capabilities={
  'deviceName':'',
  'platformName': 'iOS',
  })
  于第二种情况代码写:

  app = "io.appium.TestApp"
  self.driver = webdriver.Remote(
  command_executor='',
  desired_capabilities={
  'deviceName':'',
  'platformName': 'iOS',
  'app': app,
  'udid': 'cc6bcd6a94aeb8490924dd05c5b318bfbfafb3bb'
  })
  调试思路

  确保 UDID 确真机 UDID(20+ 字符串)
  确保模拟器已经能运行误
  直接使用 Instruments 看看否能真机运行些情况连 xcode instruments 都能真机调试更别谈 appium
  确保运行 appium 用例前 instruments 没启看看没 instruments 进程
  目前 1.2.2 坑

  目前 appium 1.2.2 运行 iOS 真机测试能遇错误:

  info: [debug] Starting iOS device log capture via deviceconsole
  error: iOS log capture failed: spawn ENOENT
  info: [debug] Cleaning up appium session
  error: Failed to start an Appium session, err was: Error: spawn ENOENT
  info: [debug] Error: spawn ENOENT
  at errnoException (child_process.js:1000:11)
  at Process.ChildProcess._handle.onexit (child_process.js:791:34)
  info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: spawn ENOENT)","code":"ENOENT","errno":"ENOENT","syscall":"spawn","origValue":"spawn ENOENT"},"sessionId":null}
  info: <-- POST /wd/hub/session 500 1780.745 ms - 197
   /usr/local/lib/node_modules/appium/build/deviceconsole/ 面缺失 deviceconsole已经 bug 追踪

  解决:

  该目录底 cd /usr/local/lib/node_modules/appium/build/deviceconsole/
  打deviceconsole project open deviceconsole.xcodeproj
  重新 build build deviceconsole复制 /usr/local/lib/node_modules/appium/build/deviceconsole/
  重新运行 Appium