# -*- coding: utf-8 -*-
## coding =utf-8
import os,subprocess
def get_ios_devices():
print("===============================================================")
print("========= 识别扫描连接IOS设备,开启tidevice终端=================")
print("===============================================================")
s = os.popen("tidevice list")
s = s.buffer.readlines()
ios_list = []
for ios in s:
if len(ios.split()) > 1:
ios = ios.decode('utf-8')
ios_list.append(ios.split()[0])
print("苹果设备{}被扫描识别".format(ios.split()[0]))
print('本次共扫描出%s个苹果设备' % len(ios_list))
port = 0
for devices in ios_list:
port+=1
print(devices)
os.popen( "tidevice --udid "+ str(devices) +" xctest -B com.facebook.WebDriverAgentRunnerxzz.xctrunner -e USB_PORT:830"+ str(port)+'')
# os.system( "tidevice --udid "+ str(devices) +" xctest -B com.facebook.WebDriverAgentRunnerxzz.xctrunner -e USB_PORT:830"+ str(port)+'')
print(f"开启成功:{devices}:830{port}")
return True
get_ios_devices()
com.facebook.WebDriverAgentRunnerxzz.xctrunner
这个需要替换成你自己的Xcode打包的BuildID
代码更新:
修复了os.popen()读取乱码问题‘gbk‘ codec can‘t decode byte 0x80
之前代码中没有s.buffer.readlines()及ios.decode(‘utf-8’),会报gbk错误。
使用buffer.readlines()读取出来的数据是字节,不是字符串,所以还需要将字节转化成字符,即代码中的ios.decode(‘utf-8’)。
也可以使用buffer.read().decode('utf-8),但读取出来的整体为str类型,需要自己转化成列表。建议用我的方法,readlines字节转字符再存列表。