beeware / Python-Apple-support

A meta-package for building a version of Python that can be embedded into a macOS, iOS, tvOS or watchOS project.
MIT License
1.11k stars 160 forks source link

lib-dynload .so files trigger App Store rejection #118

Closed RonAvitzur closed 3 years ago

RonAvitzur commented 3 years ago

Describe the bug The .so dynamic libraries in python3.9/lib-dynload cause the macOS App Store to reject submissions including them.

Russell Keith-Magee writes: "That looks like an oversight of the support package build process - there shouldn't be any .so files in the support build, specifically because of app store packaging requirements."

To Reproduce Steps to reproduce the behavior:

  1. Submit an app including the python3.9 libs in Python-3.9-macOS-support.b3 to the macOS App Store
  2. App Store responds with "Your app uses or references the following non-public APIs: Info • Contents/Resources/Python/lib/python3.9/lib-dynload/readline.cpython-39-darwin.so/_PyEval_SaveThread • Contents/Resources/Python/lib/python3.9/lib-dynload/nis.cpython-39-darwin.so/_PyEval_SaveThread • Contents/Resources/Python/lib/python3.9/lib-dynload/_curses.cpython-39-darwin.so/_PyEval_SaveThread • Contents/Resources/Python/lib/python3.9/lib-dynload/_scproxy.cpython-39-darwin.so/_PyEval_SaveThread • Contents/Resources/Python/lib/python3.9/lib-dynload/_posixshmem.cpython-39-darwin.so/_PyEval_SaveThread • Contents/Resources/Python/lib/python3.9/lib-dynload/_zoneinfo.cpython-39-darwin.so/_PyTuple_GetItem ... The use of non-public APIs is not permitted on the App Store, because it can lead to a poor user experience should these APIs change."

Additional context Deleting the lib-dynload .so files resolves the issue.