classification
Title: Apple refuses apps written in Python
Type: Stage: resolved
Components: C API, Interpreter Core, macOS Versions: Python 3.9
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: adigeo, ned.deily, ronaldoussoren, terry.reedy
Priority: normal Keywords:

Created on 2021-03-02 18:10 by adigeo, last changed 2021-03-06 03:24 by ned.deily. This issue is now closed.

Messages (11)
msg387947 - (view) Author: Adrian (adigeo) Date: 2021-03-02 18:10
My company maintains several Python related projects, one of them being an application published for many years in the Mac App Store.

During the submittion of the last update for the app, we were refused by Apple to publish the software with the following reason:

Guideline 2.5.1 - Performance
Your app links against the following non-public framework(s):

• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_wadd_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_wins_wch
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wch
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wchnstr
• Contents/Frameworks/libpython3.9.dylib/___sprintf_chk
• Contents/Frameworks/libpython3.9.dylib/_posix_spawn
• Contents/Frameworks/libpython3.9.dylib/_posix_spawn_file_actions_addclose
• Contents/Frameworks/libpython3.9.dylib/_posix_spawn_file_actions_adddup2
• Contents/Frameworks/libpython3.9.dylib/_posix_spawn_file_actions_addopen
• Contents/Frameworks/libpython3.9.dylib/_posix_spawn_file_actions_destroy
• Contents/Frameworks/libpython3.9.dylib/_posix_spawn_file_actions_init
• Contents/Frameworks/libpython3.9.dylib/_posix_spawnattr_destroy
• Contents/Frameworks/libpython3.9.dylib/_posix_spawnattr_init
• Contents/Frameworks/libpython3.9.dylib/_posix_spawnattr_setflags
• Contents/Frameworks/libpython3.9.dylib/_posix_spawnattr_setpgroup
• Contents/Frameworks/libpython3.9.dylib/_posix_spawnattr_setsigdefault
• Contents/Frameworks/libpython3.9.dylib/_posix_spawnattr_setsigmask
• Contents/Frameworks/libpython3.9.dylib/_posix_spawnp
• Contents/Frameworks/libcrypto.1.1.dylib/___sprintf_chk
• Contents/Frameworks/libp11-kit.0.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libpanelw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/___sprintf_chk
• Contents/Frameworks/libmpfr.6.dylib/___sprintf_chk
• Contents/Frameworks/libgnutls.30.dylib/___sprintf_chk
• Contents/Frameworks/libgnutls.30.dylib/_p11_kit_space_strdup
• Contents/Frameworks/libgnutls.30.dylib/_p11_kit_space_strlen
• Contents/Frameworks/libidn2.0.dylib/_sprintf
• Contents/Frameworks/libx264.157.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libcrypto.1.1.dylib/___sprintf_chk
• Contents/Frameworks/libssl.1.1.dylib/___sprintf_chk
• Contents/Frameworks/libxml2.2.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/Python/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_addclose
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_adddup2
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_addopen
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_destroy
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_init
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_destroy
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_init
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setflags
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setpgroup
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setsigdefault
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setsigmask
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnp
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libssl.1.1.dylib/___sprintf_chk
• Contents/Frameworks/libhogweed.6.dylib/_nettle_buffer_space
• Contents/Frameworks/libicui18n.67.dylib/_sprintf
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libmenuw.5.dylib/_SP
• Contents/Frameworks/libavfilter.7.dylib/_avformat_match_stream_specifier
• Contents/Frameworks/libmpc.3.dylib/___sprintf_chk
• Contents/Frameworks/libunistring.2.dylib/___sprintf_chk
• Contents/Frameworks/libunistring.2.dylib/_sprintf
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libpanelw.5.dylib/__nc_panelhook
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/__nc_wcrtomb

Next Steps

The use of non-public APIs is not permitted on the App Store as it can lead to a poor user experience should these APIs change.
msg387959 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2021-03-02 19:54
From where are you getting the Python that you are using in the app? A number of those libraries are not part of the python.org Mac binaries.  And are you compiling with c++ by any chance?
msg387960 - (view) Author: Adrian (adigeo) Date: 2021-03-02 20:03
My apologies, you may disregard any libraries not downloaded from python.org <http://python.org/>

I am strictly speaking about the following items related to this mailing list:

• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_wadd_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_wins_wch
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wch
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libpanelw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libcrypto.1.1.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/Python/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_addclose
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_adddup2
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_addopen
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_destroy
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_init
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_destroy
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_init
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setflags
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setpgroup
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setsigdefault
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setsigmask
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnp
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libssl.1.1.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libmenuw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libpanelw.5.dylib/__nc_panelhook
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/__nc_wcrtomb

All of them are part of Python 3.9 for Mac downloaded from:

https://www.python.org/downloads/ <https://www.python.org/downloads/>

--
Adrian

> On 2 Mar 2021, at 16:54, Ned Deily <report@bugs.python.org> wrote:
> 
> 
> Ned Deily <nad@python.org> added the comment:
> 
>> From where are you getting the Python that you are using in the app? A number of those libraries are not part of the python.org Mac binaries.  And are you compiling with c++ by any chance?
> 
> ----------
> 
> _______________________________________
> Python tracker <report@bugs.python.org>
> <https://bugs.python.org/issue43374>
> _______________________________________
>
msg387961 - (view) Author: Adrian (adigeo) Date: 2021-03-02 20:04
My apologies, you may disregard any libraries not downloaded from python.org <http://python.org/>

I am strictly speaking about the following items related to this mailing list:

• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_wadd_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_wins_wch
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wch
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_win_wchnstr
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libpanelw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libcrypto.1.1.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/Python/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_addclose
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_adddup2
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_addopen
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_destroy
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawn_file_actions_init
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_destroy
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_init
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setflags
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setpgroup
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setsigdefault
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnattr_setsigmask
• Contents/Frameworks/Python.framework/Versions/3.9/Python/_posix_spawnp
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libssl.1.1.dylib/___sprintf_chk
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libmenuw.5.dylib/_SP
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libpanelw.5.dylib/__nc_panelhook
• Contents/Frameworks/Python.framework/Versions/3.9/lib/libformw.5.dylib/__nc_wcrtomb

All of them are part of Python 3.9 for Mac downloaded from:

https://www.python.org/downloads/ <https://www.python.org/downloads/>

--
Adrian

> On 2 Mar 2021, at 16:54, Ned Deily <report@bugs.python.org <mailto:report@bugs.python.org>> wrote:
> 
> 
> Ned Deily <nad@python.org <mailto:nad@python.org>> added the comment:
> 
>> From where are you getting the Python that you are using in the app? A number of those libraries are not part of the python.org <http://python.org/> Mac binaries.  And are you compiling with c++ by any chance?
> 
> ----------
> 
> _______________________________________
> Python tracker <report@bugs.python.org <mailto:report@bugs.python.org>>
> <https://bugs.python.org/issue43374 <https://bugs.python.org/issue43374>>
> _______________________________________
>
msg387970 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2021-03-02 21:09
Hmm, yours is the first report of this here that I'm aware of. I see other reports on the web of other non-Python projects running into similar problems. So one question is what has changed? Can you report the version info string of this Python? Have you previously successfully submitted apps using this particular build of Python 3.9? If not, can you say exactly which version of Python last worked for this?
msg387971 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2021-03-02 21:20
BTW, if you haven't already, I would strongly suggest you ask on one of the Apple Developer Forums. My first guess is that the App Store validation process is trying to incorrectly apply rules to your local Python framework (from the Python.org installed framework). But that's just a guess at this point.
msg387972 - (view) Author: Adrian (adigeo) Date: 2021-03-02 21:29
Hi Ned,

I have a ticket opened with Apple. They refuse the software as it, they are in a position of absolute power, to reject and drop many years of work on a dime.

What am I suppose to do? I can fix my own software, but then there are dependencies like Python itself. Hence my question on this forum. I don’t expect miracles or people doing works for free for me to solve my problem. I think I am not the only one confronted with this problem, Python has a pretty large installed base. 

I am looking for practical suggestions.

Regards,
Adrian

> On 2 Mar 2021, at 18:20, Ned Deily <report@bugs.python.org> wrote:
> 
> 
> Ned Deily <nad@python.org> added the comment:
> 
> BTW, if you haven't already, I would strongly suggest you ask on one of the Apple Developer Forums. My first guess is that the App Store validation process is trying to incorrectly apply rules to your local Python framework (from the Python.org installed framework). But that's just a guess at this point.
> 
> ----------
> 
> _______________________________________
> Python tracker <report@bugs.python.org>
> <https://bugs.python.org/issue43374>
> _______________________________________
>
msg387974 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2021-03-02 21:36
> What am I suppose to do?

I appreciate that it's a nasty problem. Unfortunately, this is unknown territory for me: I have no experience with the Mac App Store and this is the first time I've run across a report like this. So the question again is: what has changed? Were you able to successfully submit Python apps before? If so, exactly what version worked and what version is failing now/ There are some differences in how we have and are now building the Mac binaries for the python.org installers.  But I'm working blind here.  Perhaps some other people have experience with this.
msg387977 - (view) Author: Adrian (adigeo) Date: 2021-03-02 21:51
Hi Ned,

Yes, I have submitted Python apps to Mac App Store since 2009, for 12 years.

Each new push opens a new pandoras box with different questions asked than previously. There is no learning curve, is just walls with more walls behind each submission. The official reasoning behind all these controls is more security for end-users at the cost of less and less freedom for developers.

The app is a the result of the collaboration effort of many people and years of IETF works related to standards based real-time communications.

Two years ago we almost dropped the app because of almost impossible to solve issues raised by Apple. 

In the last year we spent many efforts to see if and how we can still comply with the more and more authoritarian demands of Apple to keep these works alive. 

I resigned myself to the thought that at some point we will hit a unsolvable issue, I just hope is not this one and now.

Adrian

> On 2 Mar 2021, at 18:36, Ned Deily <report@bugs.python.org> wrote:
> 
> 
> Ned Deily <nad@python.org> added the comment:
> 
>> What am I suppose to do?
> 
> I appreciate that it's a nasty problem. Unfortunately, this is unknown territory for me: I have no experience with the Mac App Store and this is the first time I've run across a report like this. So the question again is: what has changed? Were you able to successfully submit Python apps before? If so, exactly what version worked and what version is failing now/ There are some differences in how we have and are now building the Mac binaries for the python.org installers.  But I'm working blind here.  Perhaps some other people have experience with this.
> 
> ----------
> 
> _______________________________________
> Python tracker <report@bugs.python.org>
> <https://bugs.python.org/issue43374>
> _______________________________________
>
msg388177 - (view) Author: Terry J. Reedy (terry.reedy) * (Python committer) Date: 2021-03-06 00:51
Adrian, when responding by email, please delete the copy of the email you are responding to, except maybe a line or two, as it is redundant when posted on the web page.

Have you tried forums where there might be other Apple app developers with similar issues?
msg388192 - (view) Author: Adrian (adigeo) Date: 2021-03-06 02:46
Terry,

After opening issues on this and other mailing lists (PyObjc) Apple validated our app without a comment.  

Adrian

> On 5 Mar 2021, at 21:51, Terry J. Reedy <report@bugs.python.org> wrote:
> 
> 
> Terry J. Reedy <tjreedy@udel.edu> added the comment:
> 
> Adrian, when responding by email, please delete the copy of the email you are responding to, except maybe a line or two, as it is redundant when posted on the web page.
History
Date User Action Args
2021-03-06 03:24:59ned.deilysetstatus: open -> closed
resolution: out of date
stage: resolved
2021-03-06 02:46:14adigeosetmessages: + msg388192
2021-03-06 00:51:29terry.reedysetnosy: + terry.reedy
messages: + msg388177
2021-03-02 22:09:21ned.deilysettype: security ->
2021-03-02 21:51:15adigeosetmessages: + msg387977
2021-03-02 21:36:34ned.deilysetmessages: + msg387974
2021-03-02 21:29:07adigeosetmessages: + msg387972
2021-03-02 21:20:35ned.deilysetmessages: + msg387971
2021-03-02 21:09:02ned.deilysetmessages: + msg387970
2021-03-02 20:04:00adigeosetmessages: + msg387961
2021-03-02 20:03:35adigeosetmessages: + msg387960
2021-03-02 19:54:30ned.deilysetmessages: + msg387959
2021-03-02 18:10:10adigeocreate