2011-08-26 14 views
6

Presento mi aplicación en la tienda de aplicaciones y después de la revisión fue rechazada. Razón de Apple fue:confundido acerca de: (2.5) Las aplicaciones que usan API no públicas serán rechazadas


2,5: Las aplicaciones que utilizan API no públicas serán rechazadas

* Encontramos que su aplicación utiliza una o más API no públicas, que no es en cumplimiento con las Pautas de Revisión de App Store. El uso de API no públicas no es permisible porque puede llevar a una experiencia de usuario deficiente si estas API cambian. Encontramos las siguientes API no públicas en su aplicación:

dateWithCalendarFormat: Zona horaria:

hourOfDay

minuteOfHour

secondOfMinute

setNavigationBar:

si se han definido métodos en su código fuente con los mismos nombres que las API mencionadas anteriormente , le sugerimos que modifique los nombres de sus métodos para que no colisionen con las API privadas de Apple para evitar que su aplicación se marque en futuras presentaciones.

Además, una o más de las API mencionadas anteriormente pueden residir en una biblioteca estática incluida con su aplicación. Si no tiene acceso a la fuente de la biblioteca, puede buscar el binario compilado utilizando las herramientas de línea de comandos "cadenas" o "otool". La herramienta "cadenas" puede generar una lista de los métodos que la biblioteca llama y "otool -ov" generará las estructuras de la clase Objective-C y sus métodos definidos. Estas técnicas pueden ayudar a reducir en el que reside el código problemático. *


Pero, el problema es que yo no declarar o definir ninguno de los métodos con los nombres como las API antes mencionadas. Y no usé ninguna biblioteca personalizada. Es una aplicación bastante simple (planer) y solo utilicé: UIKit, CoreData, AVFoundation, Foundation y EventKit.

Ayer envié un mensaje a Apple, pero aún no recibí ninguna respuesta.

¿Alguna idea?

+0

Agrupe rápidamente su código fuente para las instancias de uno de estos (por ejemplo, 'secondOfMinute'). ¿Aparecen en cualquier lado? –

+0

Si no llama a ninguno de los códigos de Apple que usa API privada y los contactó, espere una respuesta. – Moshe

+0

Métodos dateWithCalendarFormat: timeZone :, hourOfDay, minuteOfHour y secondOfMinute I utiliza sólo una vez en mi código: int hora = [[[fecha DatePicker] dateWithCalendarFormat: nil timeZone: nil] hourOfDay]; int min = [[[datePicker date] dateWithCalendarFormat: nil timeZone: nil] minuteOfHour]; int sec = [[[datePicker date] dateWithCalendarFormat: nil timeZone: nil] secondOfMinute]; donde datePicker es un objeto de la clase UIDatePicker: @property (no atómico, retener) IBOutlet UIDatePicker * datePicker; Lo mismo en el método setNavigationBar. No declare o defina esos métodos. –

Respuesta

4

que ha dicho en los comentarios anteriores que utilizó

[[[datePicker date] dateWithCalendarFormat:nil timeZone:nil] hourOfDay] 

Ahora, [datePicker date] devuelve un NSDate, cuya documentation muestra que no hay métodos públicos nombrados dateWithCalendarFormat:timezone: ni hourOfDay etc.

lo tanto, puede no sólo usalos, usalos a ellos.

En cuanto a setNavigationBar:, la propiedad navigationBar de UINavigationController es una propiedad de solo lectura, como dice la documentación. Por lo tanto, no puedes configurarlo.

Al compilar su aplicación, el compilador debería haber emitido muchas advertencias al respecto, diciendo que no se encontró el selector, etc. Siempre debe considerar esas advertencias como errores y eliminarlas. De esta manera puede evitar el rechazo después de la presentación.

+0

Sí, sí, lo vi unos minutos antes, y lo cambié. ¿Pero qué hay del método setNavigationBar ??? –

+0

dateWithCalendarFormat: zona horaria: no es más recomendable ... pero lo que es un problema con setNavigationBar: UINavigationBar * bar = [[UINavigationBar alloc] init]; bar.barStyle = UIBarStyleBlackOpaque; [opla setNavigationBar: bar]; [opla.navigationBar setTintColor: self.navigationController.navigationBar.tintColor]; [opla.navigationBar setBarStyle: self.navigationController.navigationBar.barStyle]; –

+0

Muy bien, mira mi actualización. – Yuji

Cuestiones relacionadas