Error de Xamarin Forms: 'DEBE llamar a Xamarin.Forms.Init (); antes de usarlo '- TestFlight (iOS) solo

He visto varias otras publicaciones en SO y en otros lugares acerca de este error ( System.InvalidOperationException: You MUST call Xamarin.Forms.Init(); prior to using it. at Xamarin.Forms.Device.get_PlatformServices ), pero ninguno de ellos arrojó cualquier luz sobre mi situación particular.

He creado una aplicación Xamarin.Forms que funciona muy bien en Android (emuladores y dispositivos, incluso cuando se distribuye a través de Google Play), y funciona bien tanto en el simulador de iPhone como cuando se proporciona al iPhone. Y cuando digo "funciona bien", me refiero a "es capaz de llegar a MainPage sin error".

Sin embargo, cuando utilizo la implementación Ad-Hoc y la subo a Apple para que pueda distribuirse con TestFlight, la versión descargada de TestFlight muestra la pantalla de bienvenida como se esperaba y luego se cuelga sin mostrar MainPage. Al observar los loggings del dispositivo, aparece el error anterior y, al hacer una investigación en Internet, es evidente que mi AppDelegate necesita tener global::Xamarin.Forms.Forms.Init(); como la primera línea en el método FinishedLaunching() .

Entonces fui a echar un vistazo y puse esa línea en ese método en ese file, y he aquí, ya está ahí. Esto no es inesperado, dado el hecho de que la aplicación funciona en el sim y en el iPhone cuando se implementa directamente desde Visual Studio .

Entonces, mi pregunta es: ¿Por qué falla la implementación de Ad-Hoc cuando el rest de los types de implementación no lo hacen y qué puedo hacer para superar este problema y hacer que la aplicación se distribuya realmente a través de TestFlight de manera ejecutable?

Pude resolver el problema colocando el command ( global::Xamarin.Forms.Forms.Init(); ) lo primero en cada constructor de cada class en los services específicos de la plataforma iOS. Es posible que solo uno sea realmente necesario, pero no parece haber causado que ningún problema sobrepase ese command en particular, y en el caso de que se llame a más de uno de los services antes de que se invoque el método de FinDeAplicación de AppDelegate FinishedLaunching() , eso parece ser necesario en el primero llamado, lo que podría variar según el flujo del progtwig, según el entorno y otras variables que puedan verificarse.