{"id":7155,"library":"developer-disk-image","title":"Developer Disk Image Downloader","description":"The 'developer-disk-image' Python library automates the download of Apple Developer Disk Images and Personalized Images. These images are essential for iOS development and debugging, allowing tools like Xcode to connect to devices running specific iOS versions. The library fetches these files directly from GitHub repositories. The current version is 0.2.0, with updates typically aligning with new iOS releases or Xcode versions.","status":"active","version":"0.2.0","language":"python","source_language":"en","source_url":"https://github.com/doronz88/DeveloperDiskImage","tags":["iOS","Xcode","DeveloperDiskImage","Apple","automation","github"],"install":[{"cmd":"pip install developer-disk-image","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Used for making HTTP requests to download the actual disk image files.","package":"requests","optional":false},{"reason":"Used to interact with the GitHub API for listing releases and assets.","package":"PyGithub","optional":false}],"imports":[{"wrong":"from developer_disk_image import download_latest_developer_disk_image_for_ios_version","symbol":"download_latest_developer_disk_image_for_ios_version","correct":"from developer_disk_image import download_latest_developer_disk_image_for_ios_version"}],"quickstart":{"code":"import os\nfrom developer_disk_image import (\n    download_latest_developer_disk_image_for_ios_version,\n    download_latest_personalized_disk_image_for_ios_version,\n    GithubRateLimitExceededError\n)\n\n# It's highly recommended to use a GitHub token to avoid API rate limits.\n# You can generate one at https://github.com/settings/tokens\nGITHUB_TOKEN = os.environ.get('GITHUB_TOKEN', '')\n\noutput_directory = \".\"\nos.makedirs(output_directory, exist_ok=True)\n\ntry:\n    # Download a Developer Disk Image (e.g., for iOS 17.0)\n    print(\"Downloading Developer Disk Image for iOS 17.0...\")\n    dev_image_path = download_latest_developer_disk_image_for_ios_version(\n        version=\"17.0\",\n        github_token=GITHUB_TOKEN,\n        output_dir=output_directory,\n        verbose=True\n    )\n    print(f\"Developer Disk Image downloaded to: {dev_image_path}\")\n\n    # Download a Personalized Disk Image (e.g., for iOS 16.0)\n    print(\"\\nDownloading Personalized Disk Image for iOS 16.0...\")\n    pers_image_path = download_latest_personalized_disk_image_for_ios_version(\n        version=\"16.0\",\n        github_token=GITHUB_TOKEN,\n        output_dir=output_directory,\n        verbose=True\n    )\n    print(f\"Personalized Disk Image downloaded to: {pers_image_path}\")\n\nexcept GithubRateLimitExceededError:\n    print(\"GitHub API rate limit exceeded. Please provide a GitHub token in the GITHUB_TOKEN environment variable or as a parameter.\")\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n","lang":"python","description":"This quickstart demonstrates how to download both a Developer Disk Image and a Personalized Disk Image for specific iOS versions. It includes error handling for GitHub API rate limits and encourages the use of a `GITHUB_TOKEN` for robust operation."},"warnings":[{"fix":"Always provide a GitHub Personal Access Token (PAT) via the `github_token` parameter in download functions or by setting the `GITHUB_TOKEN` environment variable. Generate a PAT at `github.com/settings/tokens`.","message":"Frequent use without authentication will quickly hit GitHub's API rate limits, leading to `GithubRateLimitExceededError` and preventing further downloads.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure your version string (e.g., '17.0') is accurate. If a download fails, check the GitHub repository directly for the latest available versions and asset names. Implement robust error handling (e.g., for `GithubAssetNotFound`) in your scripts.","message":"The specific Developer Disk Image or Personalized Image files for an iOS version on GitHub may be updated, replaced, or removed. For instance, `v0.1.0` replaced the 15.8 image with 15.5 due to issues.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Ensure you have sufficient disk space before initiating downloads. Use the `verbose=True` argument in the download functions to monitor the download progress and avoid assuming the script is stuck.","message":"Developer Disk Images are large files (often several gigabytes). Downloads can consume significant bandwidth and disk space, and may take a considerable amount of time depending on your network speed.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"search_vec":"'0.2.0':57 'align':61 'allow':32 'appl':16,72 'autom':12,73 'connect':37 'current':54 'debug':31 'develop':1,7,17,29 'developer-disk-imag':6 'developerdiskimag':71 'devic':39 'direct':49 'disk':2,8,18 'download':4,14 'essenti':26 'fetch':46 'file':48 'github':51,74 'imag':3,9,19,22,24 'io':28,42,64,69 'librari':11,45 'like':34 'new':63 'person':21 'python':10 'releas':65 'repositori':52 'run':40 'specif':41 'tool':33 'typic':60 'updat':59 'version':43,55,68 'xcode':35,67,70","created_at":"2026-04-16T13:45:50.531119+00:00","updated_at":"2026-04-16T13:45:50.531119+00:00","problems":{"verify_error":"Traceback (most recent call last):\n  File \"<string>\", line 1, in <module>\nImportError: cannot import name 'download_latest_developer_disk_image_for_ios_version' from 'developer_disk_image' (/tmp/tmp8t24hps2/venv/lib/python3.12/site-packages/developer_disk_image/__init__.py)"},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.2.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/doronz88/DeveloperDiskImage","docs":null,"changelog":null,"pypi":"https://pypi.org/project/developer-disk-image/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"import_fail","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-07-10","install_tag":null}}