Skip to content

Add support for iOS and Android platform tags #8029

@freakboy3742

Description

@freakboy3742

PEP 730 added support for iOS as a tier 3 supported platform, using the platform tags:

  • ios_X_Y_arm64_iphoneos (iOS ARM64 device)
  • ios_X_Y_arm64_iphonesimulator (iOS simulator running on ARM64 macOS)
  • ios_X_Y_x86_64_iphonesimulator (iOS simulator running on x86_64 macOS)

where X_Y is the minimum iOS API version. 13.0 is the default version supported by a CPython build; 12.0 is known to work except for some warnings when compiling the sqlite3 module. As with macOS, a 13.0 wheel will work on iOS 18, but a 18.0 wheel won't run on a device running iOS 13.

PEP 738 added support for Android as a tier 3 supported platform, using the tags:

  • android_X_arm64_v8a (Android ARM64 device, or emulator on ARM64 hardware)
  • android_X_x86_64 (Android emulator on x86_64 hardware)

where X is the Android SDK level; 21 by default. As with iOS, the value of X is the oldest device SDK that is supported.

uv pip install should add support for these tags to the list allowed by --python-platform.

As with macOS, it may also be desirable to include shortcuts so that a full tag isn't required; however, this can't be a simple "ios"/"android" shortcut. For iOS, at least 2 shortcuts will be required, as iphoneos and iphonesimulator are different ABIs. There is also the need to accomodate architecture targeting, most Android developers on Linux/Windows will have x86_64 devices, but need to be able to target ARM64 Android devices as part of build/release processes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    compatibilityCompatibility with a specification or another toolenhancementNew feature or improvement to existing functionalityhelp wantedContribution especially encouraged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions