gpt4 book ai didi

ios - Xamarin Forms 错误 - 'You MUST call Xamarin.Forms.Init(); prior to using it' - 仅限 TestFlight (iOS)

转载 作者:行者123 更新时间:2023-12-03 12:10:34 25 4
gpt4 key购买 nike

我已经在 SO 和其他地方看到了关于此错误的其他几篇文章( System.InvalidOperationException: You MUST call Xamarin.Forms.Init(); prior to using it. at Xamarin.Forms.Device.get_PlatformServices ),但没有一篇文章说明了我的具体情况。

我创建了一个 Xamarin.Forms 应用程序,它在 Android(模拟器和设备,包括通过 Google Play 分发时)运行良好,并且在 iPhone 模拟器和配置到 iPhone 时都运行良好。当我说“工作正常”时,我的意思是“能够无误地进入 MainPage”。

但是,当我使用 Ad-Hoc 部署并将其上传到 Apple 以便它可以与 TestFlight 一起分发时,TestFlight 下载的版本会按预期显示启动画面,然后在没有显示 MainPage 的情况下崩溃。在查看设备日志时,出现了上述错误,并且在做一些互联网研究时,很明显我的 AppDelegate 需要有 global::Xamarin.Forms.Forms.Init();作为 FinishedLaunching() 中的第一行方法。

所以我去看了看,把那行放在那个文件的那个方法中,瞧,它已经在那里了。这并不意外,因为该应用程序可在 sim 上运行,并且当直接从 Visual Studio 部署时可在 iPhone 上运行。

所以我的问题是“当所有其他部署类型都没有时,为什么 Ad-Hoc 部署会失败,我该怎么做才能克服这个问题并使应用程序以可运行的方式通过 TestFlight 实际分发?”

最佳答案

我能够通过将命令 ( global::Xamarin.Forms.Forms.Init(); ) 放在 iOS 平台特定服务中每个类的每个构造函数中的第一件事来解决这个问题。可能只有一个是真正必要的,但似乎不会导致过度部署该特定命令的任何问题,并且在 AppDelegate 的 FinishedLaunching() 之前调用了多个服务的情况下。方法被调用,这在第一个调用中似乎是必要的,这可能会因程序流程而异,具体取决于环境和可能检查的其他变量。

关于ios - Xamarin Forms 错误 - 'You MUST call Xamarin.Forms.Init(); prior to using it' - 仅限 TestFlight (iOS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42236071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com