para debug create compile app ios xamarin.forms testflight

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



xamarin para ios (1)

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

Creé 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 aprovisiona en el iPhone. Y cuando digo ''funciona bien'', quiero decir ''es capaz de llegar a la página principal sin error''.

Sin embargo, cuando uso la implementación Ad-Hoc y la cargo a Apple para que pueda distribuirse con TestFlight, la versión descargada de TestFlight muestra la pantalla de presentación como se esperaba, y luego se cuelga sin mostrar la página principal. Al mirar los registros del dispositivo, aparece el error anterior, y al hacer alguna investigación en Internet, se hace evidente que mi AppDelegate necesita tener global::Xamarin.Forms.Forms.Init(); como la primera línea en el método FinishedLaunching() .

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

Así que mi pregunta es ''¿Por qué la implementación de Ad-Hoc falla cuando no lo hacen todos los demás tipos de implementación, y qué puedo hacer para superar este problema y lograr que la aplicación se distribuya realmente a través de TestFlight de manera ejecutable?''


Pude resolver el problema al poner el comando ( global::Xamarin.Forms.Forms.Init(); ) lo primero en cada constructor en cada clase en los servicios específicos de la plataforma iOS. Es posible que solo uno sea realmente necesario, pero no parece haber causado ningún problema para implementar en exceso ese comando en particular, y en el caso de que se llame a más de uno de los servicios antes de que se llame al método FinishedLaunching() AppDelegate. , eso parece ser necesario en la primera llamada, que podría variar según el flujo del programa, dependiendo del entorno y de otras variables que puedan verificarse.