# -*- 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字节转字符再存列表。