martedì 23 luglio 2024

App Python rifiutata da App Store di Apple a causa di una stringa


 

Gli sviluppatori Python stanno affrontando un problema insolito. L'aggiornamento della versione del loro linguaggio di programmazione sta causando il rifiuto delle app nell'App Store.

Di recente, alcuni sviluppatori hanno effettuato l'aggiornamento da Python 3.11 a 3.12. Quando hanno reinviato le loro app all'App Store di Apple, sono state respinte.

Questo problema ha attirato l'attenzione di molti sviluppatori. Il problema è con Python 3.12 o con il team di revisione di Apple? Una stringa è la causa di fallimento della revisione dell'app

Eric Froemling, uno sviluppatore, ha condiviso la sua esperienza su GitHub. Ha detto:

"Questo non è un bug tipico. L'aggiornamento della mia app è stato rifiutato dal Mac App Store dopo che ho aggiornato da Python 3.11 a 3.12."

All'inizio, Eric non capiva perché la sua app precedentemente approvata fosse stata ora rifiutata.

Il team di revisione dell'App Store non ha spiegato il perché. Hanno solo detto: "Non possiamo fornire ulteriori informazioni."

Dopo diversi tentativi, Eric ha inviato un appello ad Apple. Alla fine gli hanno dato un suggerimento:

L'app installa o esegue codice eseguibile. In particolare, utilizza lo schema URL itms-services per installare le app.

Lo schema URL itms-services è il modo di Apple per distribuire le app iOS al di fuori dell'App Store. Viene spesso utilizzato per app interne o di prova.

Consente agli utenti di installare le app direttamente sui propri dispositivi iOS senza utilizzare l'App Store.

Un URL itms-services di base si presenta così:

itms-services://?action=download-manifest&url=https://example.com/manifest.plist

Dopo molte indagini, Eric ha trovato il file problematico: Lib/urllib/parse.py (parser URL della libreria standard di Python) e il suo file .pyc.

In Python 3.12, è stata aggiunta una stringa "itms-services". Apple sembra cercare questa stringa e rifiutare automaticamente le app che la includono.

Infine, Eric ha rimosso questa stringa dal suo codice Python. Dopodiché, la sua app aggiornata ha superato la revisione ed è stata inserita con successo nell'App Store.

Regole controverse di Apple per la revisione e il feedback

Eric Froemling non era arrabbiato per la stringa "itms-services" in sé. Era frustrato dalle regole di revisione dell'App Store di Apple.

Ha detto: "Una volta che Apple mi ha detto che il problema era in Lib/urllib/parse.py e nel suo file .pyc, non è stato difficile capire cosa fosse successo".

"Ripensandoci, sono deluso di non aver cercato prima 'itms-services' in Python. Inoltre, non ho trovato altre persone con lo stesso problema".

Come molti sanno, il debug è spesso più difficile della scrittura del codice.

Eric ha trascorso molto tempo a eseguire il debug. Ha dovuto solo eliminare una stringa per risolvere il problema. Molti sviluppatori pensano che questo avrebbe potuto essere evitato se il processo di revisione di Apple fosse stato più chiaro. Ma in realtà, il processo di revisione di Apple non è trasparente.

Uno sviluppatore core di CPython a dichiarato: le regole di revisione dell'App Store sono rigide e imprevedibili!

Russell Keith-Magee, uno sviluppatore core di CPython, ha scritto un articolo su questo problema. Ha chiesto: Quanto dovremmo cambiare per adattarci alle regole dell'App Store?

Il problema è che l'App Store di macOS di Apple rifiuta automaticamente le app con la stringa "itms-services". Ciò è vero anche se l'app non utilizza mai URL itms-services://.

Nessun commento:

Posta un commento

Post più letti in assoluto