| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- from time import sleep
- from pymobiledevice3.lockdown import create_using_usbmux
- from pymobiledevice3.services.dvt.instruments.process_control import ProcessControl
- from pymobiledevice3.services.installation_proxy import InstallationProxyService
- from pymobiledevice3.services.dvt.dvt_secure_socket_proxy import DvtSecureSocketProxyService
- DD_BUNDLE_ID = 'com.laiwang.DingTalk' # 钉钉包名
- WDA_BUNDLE_ID = 'com.caner.test.xctrunner' #个人包名
- # 启动app
- def launchApp(lockdown,installer,BUNDLE_ID,Name):
- if(BUNDLE_ID and lockdown and installer):
- Apps = [app for app in installer.get_apps() if Name in app]
- if len(Apps):
- if Apps[0] == BUNDLE_ID:
- with DvtSecureSocketProxyService(lockdown) as dvt:
- process_control = ProcessControl(dvt)
- pid = process_control.launch(BUNDLE_ID)
- print("启动app",pid,BUNDLE_ID)
- sleep(3)
- return True
- else:
- return False
- else:
- return False
- else:
- return False
- def main():
- try:
- # 连接手机
- lockdown = create_using_usbmux()
- print("开发者模式",lockdown.developer_mode_status)
-
- # 获取app
- with InstallationProxyService(lockdown) as installer:
- # 启动WDA
- wda_start = launchApp(lockdown,installer,WDA_BUNDLE_ID,'xctrunner')
- if(wda_start):
- print('已启动wda')
- # 启动钉钉
- dd_start = launchApp(lockdown,installer,DD_BUNDLE_ID,'DingTalk')
- if(dd_start):
- print('已启动钉钉')
- else:
- print("没找到钉钉安装包")
- else:
- print("没找到WDA安装包")
- except ConnectionError as e:
- print(f"连接失败")
- if __name__ == '__main__':
- main()
|