Debería uno dejar afirmaciones en la producción de aplicaciones de iOS?

a práctica común podría ser colocar afirmaciones en el código para verificar los parámetros de entrada, la integridad de los datos y demás durante el desarrollo de la aplicación.

Pruebo mis aplicaciones, PERO, dado que no soy Knuth (yé escribe cheques de $ 1), y no puedo darme el lujo de emplear a un gran equipo de personal de control de calidad a tiempo completo como lo hacen algunas compañías de software de sistemas médicos y espaciales, supongo que todas las aplicaciones siempre tendrán muchos errores que nunca se han visto durante las pruebas o el control de calidad. Asumir lo contrario parece bastante intelectualmente deshonesto. Entonces, después de probar una aplicación (y obviamente eliminar todos los errores que causan fallas de ASSERT previamente vistas) y preparar la aplicación para enviarla a Apple, ¿qué se debe hacer con todas las comprobaciones de ASSERT en la versión de lanzamiento / distribución? ¿Dejar o no operar?

Aquí hay una razón para dejarlos en su interior: si una aplicación no funciona bien para algunos usuarios, la aplicación podría ser calificada por esos usuarios como 1 estrella sin que nadie le diga al desarrollador por qué con suficiente detalle. Pero si la aplicación se bloquea debido a un fallo de ASSERT, la aplicación aún podría recibir una calificación de 1 estrella, pero el desarrollador podría obtener algunos volcados por caída, indirectamente a través de iTunes e iTunes Connect si suficientes usuarios optan, para descubrir qué está sucediendo mal. Y si Apple rechaza la aplicación debido a un nuevo bloqueo ASSERT, eso evitará que una versión incorrecta de la aplicación llegue a los dispositivos del client