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.12k stars 161 forks source link

Python 3.12 change results in Apple App Store rejection #221

Closed efroemling closed 3 weeks ago

efroemling commented 3 months ago

Describe the bug

Since it is relevant here, I wanted to mention this issue that I recently ran into with Python 3.12 related to App Store reviews.

Here is my full bug report, but basically there was an 'itms-services' string added to a file in Python 3.12 and it seems Apple is auto-rejecting anything found to contain that string (at least that's what happened to me). After removing that string, my update passed inspection.

I'm curious if you or anyone else around here has run into this? (Feel free to close this issue; it is just intended as a heads-up for the original one)

Steps to reproduce

  1. Submit an app bundling Python 3.12 or later to Apple's App Store
  2. Get rejected

Expected behavior

Not getting rejected

Screenshots

No response

Environment

In my case this was Python 3.12 bundled into a Mac app submitted to the Mac App Store.

Logs

Additional context

No response

rmartin16 commented 3 months ago

crosslink:

freakboy3742 commented 3 months ago

@efroemling Thanks for the report; I've responded on the CPython ticket (since ideally, we'll be able to fix this upstream). However, worst case, we can address this in Briefcase by applying your "itms-services"-string removal patch to this Apple support package. I'm going to be doing some work on this project in the near future to back port the official 3.13 changes (and prepare for an official 3.13 release), so I'll include addressing this issue on my todo list.

freakboy3742 commented 3 weeks ago

CPython itself now has an App Store compliance patch that can be used to remove the problematic strings. The builds produced by this project (starting with 3.12-4 and 3.13-1) have this patch applied. The problem doesn't affect CPython 3.11 and earlier.