2012-12-01 6 views
10

Sono nuovo in questa tecnologia.Come avvertimento durante il caricamento dell'applicazione nell'app store Apple

Ricevo il seguente avviso durante il caricamento dell'applicazione dall'applicazione caricata.

Attenzione dice "I riferimenti app selettori non pubblici "App Name" istanza, viewController"

Si prega di aiutarmi a risolvere questo avvertimento.

Grazie in anticipo!

EDIT

Image: -

enter image description here

EDIT: -

Sarà la mia domanda ottenere l'approvazione?

+0

Si utilizza alcune API private! – Moxy

+0

http://stackoverflow.com/questions/10884968/apple-says-the-app-references-non-public-selectors-in-my-app-what-does-that-mea – nycynik

+0

la vera domanda è che cosa metodo di istanza di un controller di visualizzazione che stai chiamando che Apple considera privato. Non possiamo rispondere finché non lo sappiamo; l'immagine di dialogo che hai postato non lo rivela. –

risposta

6

Utilizzare App Scanner. Analizza il tuo file .app per l'utilizzo del metodo API privato.

Si prenderà metodi che sono stati chiamati lo stesso di un metodo API privato, anche se ha il proprio implementazione. Inoltre, cattura @selectors all'interno dei metodi (proprio come il correttore automatico ufficiale iOS).

App Lo scanner non prendere il caso in cui performSelector: viene chiamata con un selettore che è un metodo privato. Tuttavia, gli strumenti di Apple catturano questo caso.

Un'altra alternativa APP Kit, anche se non l'ho usato. Provaci.

Dai un'occhiata a questo Q & A, se non l'hai. How does Apple know you are using private API?. Sembra utile.

+0

Quando provo a caricare il mio file .app, l'applicazione App Scanner si blocca, qualsiasi altra alternativa? –

+0

effettivamente ho verificato con un file .app della mia app funziona perfettamente. Verifica la risposta aggiornata –

+0

+1 per il collegamento alla domanda * Come fa Apple ... *. La risposta di KennyTM è la migliore informazione che ho visto su questo problema. – Nate

1

Qual è stata l'ultima cosa che hai aggiunto al codice prima di ottenere questo errore? L'errore indica che hai una chiamata API privata, come indicato nelle mie note sopra.

Se non pensi che fosse il tuo codice, allora potrebbe essere uno qualsiasi dei codici inclusi.

+0

La mia applicazione viene caricata con successo, ma mi ha dato questo avviso, la mia applicazione sarà respinta a causa di questo, se ho 10 privilegi posso caricare quell'immagine di avvertimento anche –

+0

Sì, verrà rifiutato. Puoi inserire l'immagine, se la pubblichi su un servizio di immagini gratuite (come imageshack) e aggiungi il link. – nycynik

+0

@iPhoneDev, hai abbastanza rep per caricare un'immagine ora. – iDev

1

@iPhoneDev: credo che la tua domanda non verrà respinta a causa di questo motivo. Perché ho affrontato questo avviso in una delle mie app, ed è stato accettato con successo. Quindi non c'è bisogno di preoccuparsi

+0

è un gioco d'azzardo ... sta usando qualcosa di ritenuto privato dall'analizzatore statico –

+0

@ Daij-Djan ho appena risposto alla sua domanda "La mia app verrà approvata". Non sto sostenendo che dovrebbe farlo. Perché non votare per quello – coder1010

+0

perché anche se ha funzionato per te, non è sicuro che funzioni per lui. a) dipende tutto dal revisore, b) dalle tue connessioni e soprattutto da c) COSA viene utilizzato il codice privato - e non sappiamo come/come lo ha usato –

0

Quasi sicuramente viene respinto per questo.

Solo una supposizione, ma cercare "viewController" e vedere se si fa riferimento a un metodo privato esempio, o forse una variabile di istanza privata tramite la notazione del punto: .viewController

1

Penso che si potrebbe avere una funzione denominata instance da qualche parte nel codice, ad esempio:

+(id)instance{ 
    return something; 
} 

.. forse una implementazione singleton? Se questo è il caso, basta rinominarlo.

Ho visto le applicazioni approvate nonostante il fatto che essi attivati ​​gli allarmi simili, ma perché si vuole rischiare un rifiuto?

0

No, la tua app verrà rifiutata in questo modo. Decisamente. Il team di revisione di Apple utilizza gli stessi controlli di Xcode e altri ancora.

3

Cercare viewController in tutto il progetto e cercare se esiste una implementazione singleton. Anche se Apple approva la tua applicazione, non è bello avere settori non pubblici nella tua applicazione. È inoltre possibile utilizzare App Scanner

Spero che ti aiuta