main.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from time import sleep
  2. from pymobiledevice3.lockdown import create_using_usbmux
  3. from pymobiledevice3.services.dvt.instruments.process_control import ProcessControl
  4. from pymobiledevice3.services.installation_proxy import InstallationProxyService
  5. from pymobiledevice3.services.dvt.dvt_secure_socket_proxy import DvtSecureSocketProxyService
  6. DD_BUNDLE_ID = 'com.laiwang.DingTalk' # 钉钉包名
  7. WDA_BUNDLE_ID = 'com.caner.test.xctrunner' #个人包名
  8. # 启动app
  9. def launchApp(lockdown,installer,BUNDLE_ID,Name):
  10. if(BUNDLE_ID and lockdown and installer):
  11. Apps = [app for app in installer.get_apps() if Name in app]
  12. if len(Apps):
  13. if Apps[0] == BUNDLE_ID:
  14. with DvtSecureSocketProxyService(lockdown) as dvt:
  15. process_control = ProcessControl(dvt)
  16. pid = process_control.launch(BUNDLE_ID)
  17. print("启动app",pid,BUNDLE_ID)
  18. sleep(3)
  19. return True
  20. else:
  21. return False
  22. else:
  23. return False
  24. else:
  25. return False
  26. def main():
  27. try:
  28. # 连接手机
  29. lockdown = create_using_usbmux()
  30. print("开发者模式",lockdown.developer_mode_status)
  31. # 获取app
  32. with InstallationProxyService(lockdown) as installer:
  33. # 启动WDA
  34. wda_start = launchApp(lockdown,installer,WDA_BUNDLE_ID,'xctrunner')
  35. if(wda_start):
  36. print('已启动wda')
  37. # 启动钉钉
  38. dd_start = launchApp(lockdown,installer,DD_BUNDLE_ID,'DingTalk')
  39. if(dd_start):
  40. print('已启动钉钉')
  41. else:
  42. print("没找到钉钉安装包")
  43. else:
  44. print("没找到WDA安装包")
  45. except ConnectionError as e:
  46. print(f"连接失败")
  47. if __name__ == '__main__':
  48. main()