forma elegante de implementar mejoras en la aplicación iOS (deslocking de funciones)

Tengo una aplicación y quiero lanzar una versión Lite para boost la visibilidad y dar a las personas la oportunidad de probarlo primero. Las personas pueden download la versión Lite y luego actualizar a Pro mediante la compra en la aplicación, o pueden comprar inmediatamente la versión Pro en la tienda de aplicaciones.

¿Cuál es la forma más elegante de implementar esto para minimizar el mantenimiento del código? ¿Hay alguna manera de implementarlo en un único proyecto XCode?

Estaba pensando en implementar un indicador bool en el estándarUserDefaults, que cuando se establece en SÍ desbloquea la actualización (esto es para la versión Lite).

Luego, para la versión Pro, mis pensamientos son include una bandera BOOL en el file Info.plist.

El código que hace el "am I a Lite o Pro" simplemente tiene que verificar la presencia de cualquiera de los indicadores anteriores y puedo mantener un único proyecto XCode, siempre que agregue la lógica apropiada en los menus o donde sea para ocultar las funciones de Pro, pero ¿qué implicaciones tiene esto para la publicación en la tienda de aplicaciones?

¿Estoy en lo cierto al pensar que al publicar, solo tengo que editar el ID del package y el Info.plist antes de enviarlo?

¿Cómo han resuelto otros este problema? Es la primera vez que lo hago, así que me encantaría escuchar algunos comentarios de personas con experiencia.

Puede consultar este enlace.

¿Cómo gestiono la construcción de una versión Lite vs Pagada de una aplicación de iPhone?