# PEP 730: Adding iOS as a supported platform

**URL:** <https://discuss.python.org/t/pep-730-adding-ios-as-a-supported-platform/35854>\
**Category:** PEPs\
**Created:** [October 10, 2023, 2:51pm UTC](https://discuss.python.org/t/pep-730-adding-ios-as-a-supported-platform/35854 "2023-10-10T14:51:36Z")\
**Posts on this page:** 1\
**Showing post:** 62

<div class="post-metadata">

**Author:** ![holzschu](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/holzschu/32/15965_2.png) [@holzschu](https://discuss.python.org/u/holzschu)\
**Post date:** [November 18, 2023, 2:31pm UTC](https://discuss.python.org/t/pep-730-adding-ios-as-a-supported-platform/35854/62 "2023-11-18T14:31:54Z")

</div>

Hi everyone,  
I’m sorry I’m late for the discussion, I only became aware of this PEP when it was submitted to the steering council.

First of all, thank you very much for this; you did a great job in building and submitting this proposal, and I support it completely. I am the author of a terminal-like app (a-Shell) and a local Jupyter notebook app (Carnets), so this will make my life a lot easier.

I have few comments, questions and answers to complete this discussion.

- as said by @freakboy3742, it’s totally possible to build Python and Python modules using a dynamic framework build of libPython (that’s what I’m using). With that build, it becomes possible to use `--undefined error` instead of `--undefined dynamic_lookup`, so the issue about possible obsolescence of that flag goes away.
- the AppStore rule about downloading code to an existing app has been clarified through the years. Downloading human-readable code (like Python) is allowed, so `pip` works for pure Python packages. That’s what Pythonista, Juno, Pyto, a-Shell and Carnets use, to the best of my knowledge. Downloading and loading Arm64 binaries is both forbidden _and_ technically impossible (the app will only load binary code that has been signed with the developer certificate _and_ placed in a specific directory that can only be accessed at install time, and never modified later).
- iOS and OSX are very similar in their behaviour, except for the fact that `fork()` won’t work and that dynamic libraries won’t load. As a result, a lot of existing Python packages written for OSX work “as is” on iOS, by going through the `platform == "darwin"` branch. This proposal will break that, and packages will have to be rewritten to expand the test: `(platform == "darwin") or (platform == "ios")`. It’s not a major issue for me, just a point to mention.
- another specificity of iOS is that the user cannot write or create directories in `~`, only in `~/Documents`. It’s not an issue for Python itself, but it is for many packages that store configuration files or caches in `~`. We will need to edit the code for these packages, but that’s not a major issue (and definitely not an issue for Python).

---

_[View the full topic](https://discuss.python.org/t/pep-730-adding-ios-as-a-supported-platform/35854)._
