-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Description
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.