{"id":16934563,"url":"https://github.com/codeskyblue/tidevice3","last_synced_at":"2025-04-03T02:09:38.217Z","repository":{"id":215600806,"uuid":"739219702","full_name":"codeskyblue/tidevice3","owner":"codeskyblue","description":"wrapper for pymobiledevice3 to make it more easy to use.","archived":false,"fork":false,"pushed_at":"2024-03-22T09:04:05.000Z","size":75,"stargazers_count":85,"open_issues_count":5,"forks_count":20,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-16T00:04:53.282Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codeskyblue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-05T03:41:32.000Z","updated_at":"2024-04-23T12:43:49.351Z","dependencies_parsed_at":"2024-01-08T04:59:01.129Z","dependency_job_id":"a7949360-a5d5-4fa6-810d-d499b363d83d","html_url":"https://github.com/codeskyblue/tidevice3","commit_stats":null,"previous_names":["codeskyblue/tidevice3"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeskyblue%2Ftidevice3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeskyblue%2Ftidevice3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeskyblue%2Ftidevice3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codeskyblue%2Ftidevice3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codeskyblue","download_url":"https://codeload.github.com/codeskyblue/tidevice3/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246922247,"owners_count":20855345,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-13T20:52:27.564Z","updated_at":"2025-04-03T02:09:38.179Z","avatar_url":"https://github.com/codeskyblue.png","language":"Python","readme":"# tidevice3\n[![PyPI version](https://badge.fury.io/py/tidevice3.svg)](https://badge.fury.io/py/tidevice3)\n[![codecov](https://codecov.io/gh/codeskyblue/tidevice3/graph/badge.svg?token=twFRe9igek)](https://codecov.io/gh/codeskyblue/tidevice3)\n\nwrapper for pymobiledevice3 to make it more easy to use.\n\n\n# Install\n\nMac\n\n```bash\npip install tidevice3\n\n# or install as Isolated environment\nbrew install pipx\npipx install tidevice3\n```\n\nLinux\n\n```bash\n# required by pytun-pmd3\nsudo apt install python3-dev gcc pipx\npipx install tidevice3\npipx ensurepath\n```\n\n# CLI Usage\n\niOS \u003e= 17 `screenshot,app:ps` connect through Ethernet over USB (NCM device) instead of usbmuxd\nSo tunneld should start first.\n\n```bash\n# start tunneld for iOS\u003e=17\n# launch process (pmd3 remote start-tunnel) when new usb device connected\n# root required\n$ sudo t3 tunneld\n```\n\nBasic usage\n\n```bash\n$ t3 list\n...\n\n# enable developer mode and mount develoepr image\n$ t3 developer\n\n# install \u0026 uninstall\n$ t3 install https://....ipa\n$ t3 install ./some.ipa\n$ t3 uninstall com.example\n\n# take screenshot\n$ t3 screenshot out.png\n\n# reboot\n$ t3 reboot\n\n# file operation\n$ t3 fsync \u003cls|rm|pull|push\u003e [Arguments...]\n\n# app\n$ t3 app \u003cps|list|launch|kill|instal|uninstall|foreground\u003e\n\n# install\n# alias for app install\n$ t3 install \u003cURL or LocalIPA\u003e\n\n# screenrecord\n$ t3 screenrecord out.mp4\n\n# relay (like iproxy LOCAL_PORT DEVICE_PORT)\n$ t3 relay 8100 8100\n$ t3 relay 8100 8100 --source 0.0.0.0 --daemonize\n\n# show help\n$ t3 --help\n```\n\n# API Usage\nThe API alone is insufficient for all operations; combining it with the pymobiledevice3 library can accomplish more things.\n\n```python\nfrom tidevice3.api import list_devices, connect_service_provider, screenshot, app_install\n\nfor d in list_devices(usb=True):\n    print(\"UDID:\", d.Identifier)\n    service_provider = connect_service_provider(d.Identifier)\n    pil_im = screenshot(service_provider)\n    pil_im.save(\"screenshot.png\")\n\n    # install ipa from URL or local\n    app_install(service_provider, \"https://example.org/some.ipa\")\n```\n\n# iOS 17 support\n- Mac (supported)\n- Windows (https://github.com/doronz88/pymobiledevice3/issues/569)\n- Linux (https://github.com/doronz88/pymobiledevice3/issues/566)\n\nMac,Windows,Linux all supported iOS\u003c17\n\n# WDA\n其实WDA启动可以不用XCUITest，下面是具体的方法（适用于iOS \u003e= 15)\n\n- iOS企业重签名方法 https://zhuanlan.zhihu.com/p/673521212\n- iOS WDA脱离xcode \u0026 tidevice运行自动化 https://zhuanlan.zhihu.com/p/673319266\n\n# DEVELOP \u0026 CONTRIBUTE\nsee [DEVELOP.md](DEVELOP.md)\n\n# LICENSE\n[MIT](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeskyblue%2Ftidevice3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodeskyblue%2Ftidevice3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodeskyblue%2Ftidevice3/lists"}