2012-11-10 14 views
6

Avevamo un'app sviluppata di recente rifiutata da Apple. Qui è la loro spiegazione:Apple ha rifiutato l'app perché sta trasmettendo l'indirizzo MAC senza il permesso dell'utente

Abbiamo trovato la vostra applicazione non ottiene il consenso dell'utente prima di raccogliere i dati personali dell'utente , come richiesto dalla theApp Conservare Review Guidelines.

In particolare, le applicazioni invia l'indirizzo MAC del dispositivo senza l'autorizzazione dell'utente. La tua app invia anche il dispositivo Informazioni di contatto senza il permesso dell'utente.

per raccogliere i dati personali con la tua applicazione, è necessario far capire all'utente che i loro dati personali verranno caricati sul server e si devono ottenere il consenso dell'utente prima che venga caricato il dato.

iOS 6 include nuovi tasti per specificare il motivo per cui l'app accederà ai dati protetti dell'utente tramite . Quando viene visualizzato il prompt di accesso, lo scopo specificato in queste chiavi viene visualizzato in quella finestra di dialogo. Se l'applicazione trasmetterà i dati utente protetti, l'utilizzo della stringa nella richiesta di accesso dovrebbe informare chiaramente l'utente che i dati saranno caricati sul server se acconsentono.

Per ulteriori informazioni su questi tasti, consultare le informazioni Riferimento chiave elenco proprietà.

Utilizziamo la toolchain RubyMotion e non accediamo all'indirizzo MAC in nessuna parte della nostra app. Pensiamo che potrebbe essere uno degli SDK o gemme che stiamo usando.

Gemfile:

source :rubygems 

gem 'bubble-wrap', :git => 'https://github.com/rubymotion/BubbleWrap.git' 
gem 'teacup' 
gem 'rake' 
gem "cocoapods", "0.13.0" 
gem 'motion-cocoapods', "1.1.0" 
gem 'motion-testflight' 
gem 'motion-table' 
gem "Parsistence" 
gem 'formotion' 
gem "ProMotion" 
gem "motion-addressbook" 

Le uniche chiamate API esterne devono Parse.com ea PROVA Scelta dei colori, come stiamo usando entrambi questi SDK di.

Parse ha dichiarato che non raccolgono l'indirizzo MAC e Testflight non lo fa a meno che non lo facciate specificamente.

Inoltre stiamo usando i baccelli di cacao:

'NSData + MD5Digest'

'MBProgressHUD'

'ASIHTTPRequest'

'PHFRefreshControl'

'JSONKit '

Domanda: Qualcuna di queste gemme o Cocoapod richiedono l'indirizzo MAC?

+0

hi Silasj, uno del mio gioco è respinta per lo stesso motivo, hai una soluzione? – Guru

+2

@Guru Abbiamo dovuto rimuovere testflight dalla build di produzione, e Apple lo ha accettato dopo. – silasjmatson

+0

qui non stiamo usando testFlight, qualche idea su questi sdk facebook sdk/RevMobAds/Nextpeer/Chartboost/TouchJSON – Guru

risposta

0

Immagino che il volo di prova o Parse possa avere la possibilità di recuperare l'indirizzo MAC e anche se non lo mandano, Apple probabilmente sta solo vedendo che sta accedendo e inviando qualcosa.Presumo questo perché sarebbe davvero pessimo se una di queste librerie stia inviando una versione non crittografata dell'indirizzo MAC sulla rete, quindi forse Apple può solo vederne l'accesso. Stai per caso utilizzando una rete pubblicitaria nella tua app?

+0

No, non ci sono pubblicità nell'app. – silasjmatson

+2

Alcune di quelle altre librerie che hai elencato sono solo codice e non una libreria precompilata. Mi piacerebbe ricerca di comprende come: #include #include #include #include per vedere se qualcuno accede al MAC address – rooster117

+0

anche io non contare parse o testare il volo. Dopo che l'UDID è stato ritirato, l'indirizzo MAC era l'unico identificatore di dispositivo univoco garantito e immaginavo che lo stessero usando per la verifica di alcuni dispositivi da parte loro. – rooster117

0

Se si desidera rilevare il traffico dal dispositivo per vedere cosa viene inviato, provare a utilizzare Charles.

4

Aggiornamento TestFlight all'ultimo SDK per risolvere questo problema. Dalle loro Note di rilascio:

1.2.5 - 1 Maggio 2013

eliminato qualsiasi accesso al MAC address

Aggiunto AdSupport.framework requisito