Invio la mia app all'app store e dopo la revisione è stata rifiutata. ragione da Apple era:confuso su: (2.5) Le app che utilizzano API non pubbliche verranno rifiutate
2,5: Le applicazioni che utilizzano le API non pubbliche saranno respinti
* Abbiamo scoperto che la vostra applicazione utilizza uno o più API non pubbliche, che non è in conformità con le Linee guida per la revisione dell'App Store. L'uso di API non pubbliche non è consentito perché può portare a una scarsa esperienza utente nel caso in cui queste API cambino. Abbiamo trovato i seguenti API non pubbliche nella vostra applicazione:
dateWithCalendarFormat: fuso orario:
hourOfDay
minuteOfHour
secondOfMinute
setNavigationBar:
se si è definito metodi nel codice sorgente con gli stessi nomi delle API sopra menzionate , ti suggeriamo di modificare i nomi dei metodi in modo che non entrino in collisione con le API private di Apple per evitare che la tua applicazione venga contrassegnata in future comunicazioni.
Inoltre, una o più API sopra menzionate possono risiedere in una libreria statica inclusa con l'applicazione. Se non si ha accesso all'origine della libreria, è possibile cercare nel binario compilato utilizzando gli strumenti da riga di comando "stringhe" o "otool". Lo strumento "stringhe" può generare un elenco dei metodi che la libreria chiama e "otool -ov" genererà le strutture della classe Objective-C e i loro metodi definiti. Queste tecniche possono aiutare a restringere in cui risiede il codice problematico. *
Ma, il problema è che non ho dichiarare o definisco uno qualsiasi dei metodi con i nomi come le API di cui sopra. E non ho usato alcuna libreria personalizzata. È un'applicazione abbastanza semplice (planer) e ho usato solo: UIKit, CoreData, AVFoundation, Foundation e EventKit.
Invio messaggio ad Apple ieri, ma ancora nessuna risposta.
Qualche idea?
Inavvertitamente grep il codice sorgente per le istanze di uno di questi (ad esempio 'secondOfMinute'). Arrivano da qualche parte? –
Se non chiami alcun codice Apple che utilizza l'API privata e li hai contattati, attendi una risposta. – Moshe
Metodi dateWithCalendarFormat: timezone :, hourOfDay, minuteOfHour e secondOfMinute ho usato solo una volta nel mio codice: int ora = [[[datepicker data] dateWithCalendarFormat: nil fuso orario: nil] hourOfDay]; int min = [[[Data data data] dataWithCalendarFormat: nil timeZone: nil] minuteOfHour]; int sec = [[[Data data data] dataWithCalendarFormat: nil timeZone: nil] secondOfMinute]; dove datePicker è oggetto dalla classe UIDatePicker: @property (nonatomic, retain) IBOutlet UIDatePicker * datePicker; Stessa cosa nel metodo setNavigationBar. Non ho dichiarato o definito quei metodi. –