wrapper for pymobiledevice3 to make it more easy to use.
Install
Mac
pip install tidevice3
# or install as Isolated environment
brew install pipx
pipx install tidevice3Linux
# required by pytun-pmd3
sudo apt install python3-dev gcc pipx
pipx install tidevice3
pipx ensurepathCLI Usage
iOS >= 17 screenshot,app:ps connect through Ethernet over USB (NCM device) instead of usbmuxd
So tunneld should start first.
# start tunneld for iOS>=17 # launch process (pmd3 remote start-tunnel) when new usb device connected # root required $ sudo t3 tunneld
Basic usage
$ t3 list ... # enable developer mode and mount develoepr image $ t3 developer # install & uninstall $ t3 install https://....ipa $ t3 install ./some.ipa $ t3 uninstall com.example # take screenshot $ t3 screenshot out.png # reboot $ t3 reboot # file operation $ t3 fsync <ls|rm|pull|push> [Arguments...] # app $ t3 app <ps|list|launch|kill|instal|uninstall|foreground> # install # alias for app install $ t3 install <URL or LocalIPA> # screenrecord $ t3 screenrecord out.mp4 # relay (like iproxy LOCAL_PORT DEVICE_PORT) $ t3 relay 8100 8100 $ t3 relay 8100 8100 --source 0.0.0.0 --daemonize # show help $ t3 --help
API Usage
The API alone is insufficient for all operations; combining it with the pymobiledevice3 library can accomplish more things.
from tidevice3.api import list_devices, connect_service_provider, screenshot, app_install for d in list_devices(usb=True): print("UDID:", d.Identifier) service_provider = connect_service_provider(d.Identifier) pil_im = screenshot(service_provider) pil_im.save("screenshot.png") # install ipa from URL or local app_install(service_provider, "https://example.org/some.ipa")
iOS 17 support
- Mac (supported)
- Windows (doronz88/pymobiledevice3#569)
- Linux (doronz88/pymobiledevice3#566)
Mac,Windows,Linux all supported iOS<17
WDA
其实WDA启动可以不用XCUITest,下面是具体的方法(适用于iOS >= 15)
- iOS企业重签名方法 https://zhuanlan.zhihu.com/p/673521212
- iOS WDA脱离xcode & tidevice运行自动化 https://zhuanlan.zhihu.com/p/673319266
DEVELOP & CONTRIBUTE
see DEVELOP.md