ipatool Cross-Platform Downloads: Supported Platforms for iOS, iPadOS, tvOS, visionOS, and macOS
ipatool supports cross-platform downloads for every platform the Apple App Store serves, including iOS, iPadOS, tvOS, visionOS, and macOS, with platform constants defined in pkg/appstore/platform.go.
The majd/ipatool repository provides a command-line interface for downloading Apple app packages across multiple operating systems. The tool maps user input to specific App Store entities, ensuring the correct package is retrieved for the target device type.
Supported Platform Constants
The supported platforms are defined in pkg/appstore/platform.go as the Platform type. The following constants represent each operating system:
PlatformIPhone: iPhone (iOS)PlatformIPad: iPad (iPadOS)PlatformAppleTV: Apple TV (tvOS)PlatformVisionOS: Vision OS (visionOS)PlatformMacOS: macOS
The ParsePlatform function in the same file maps string aliases to these constants. For example, "ios" maps to PlatformIPhone, "tvos" to PlatformAppleTV, and "mac" to PlatformMacOS.
How Platform Selection Works
When you run the download command, ipatool processes the --platform flag value in cmd/download.go (lines 38‑44). The ParsePlatform function converts the input string into the appropriate Platform constant, which determines which App Store entity the tool queries:
softwarefor iOS appsiPadSoftwarefor iPadOS appstvSoftwarefor tvOS appsxrosSoftwarefor visionOS appsmacSoftwarefor macOS apps
This mapping ensures that ipatool requests the correct package format and metadata endpoint for the specified device type.
Command Examples for Each Platform
Use the --platform flag with the appropriate alias to download apps for specific operating systems:
# Download an iOS app (iPhone)
ipatool download --app-id 123456789 --output MyApp.ipa --platform iphone
# Download an iPadOS app
ipatool download --bundle-identifier com.example.myapp \
--output MyApp.iPA --platform ipad
# Download a tvOS app
ipatool download --app-id 987654321 --output MyApp.tvOS.zip \
--platform appletv
# Download a visionOS app
ipatool download --bundle-identifier com.example.visionapp \
--output VisionApp.pkg --platform visionos
# Download a macOS app bundle
ipatool download --app-id 11223344 --output MyApp.pkg \
--platform macos
Each command passes the platform identifier to the CLI, which forwards the parsed Platform value to the App Store client in pkg/appstore/appstore.go. Include the --purchase flag to acquire a license when required.
Summary
- ipatool supports cross-platform downloads for iOS, iPadOS, tvOS, visionOS, and macOS.
- Platform constants are defined in
pkg/appstore/platform.goasPlatformIPhone,PlatformIPad,PlatformAppleTV,PlatformVisionOS, andPlatformMacOS. - The
ParsePlatformfunction handles alias mapping for the--platformflag values. cmd/download.gobinds the flag and initiates the download workflow for the selected platform.- Each platform maps to a specific App Store entity (
software,iPadSoftware,tvSoftware,xrosSoftware,macSoftware) to retrieve the correct package.
Frequently Asked Questions
Which platforms does ipatool support for cross-platform downloads?
ipatool supports downloads for iOS (iPhone), iPadOS (iPad), tvOS (Apple TV), visionOS (Apple Vision Pro), and macOS (Mac). These five platforms cover every major operating system served by the Apple App Store, as defined by the Platform type in pkg/appstore/platform.go.
How does ipatool map the --platform flag to App Store entities?
The ParsePlatform function in pkg/appstore/platform.go converts the string value from the --platform flag into a typed Platform constant. This constant determines whether ipatool queries the software, iPadSoftware, tvSoftware, xrosSoftware, or macSoftware endpoint, ensuring the retrieved package matches the target device architecture.
What string aliases can I use with the --platform flag?
You can use aliases such as "ios" for iPhone, "ipad" for iPad, "appletv" or "tvos" for Apple TV, "visionos" for Vision OS, and "mac" or "macos" for macOS. The ParsePlatform function normalizes these inputs to their respective Platform constants before executing the download.
Can ipatool download visionOS apps for Apple Vision Pro?
Yes. Specify --platform visionos when running the download command. ipatool will query the xrosSoftware entity to retrieve the correct package format for visionOS devices, according to the platform mapping implemented in pkg/appstore/appstore.go.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →