Xamarin 应用程序无法在 iOS <= 10 上启动:"Unable to bootstrap process with bundleID..."

Xamarin App fails to start on iOS <= 10: "Unable to bootstrap process with bundleID..."

我的应用程序在 iOS 11 及更高版本上运行良好,但在 iOS 9 和 10 上失败。如果同事正在构建它,它适用于所有 iOS 版本。如果我构建它,它不会。这是我在控制台中得到的:

[com.blablafy.ios.blablapay] Bootstrap 失败并出现错误:

Bootstrapping 失败 错误:错误域=BKSProcessErrorDomain 代码=1“无法 bootstrap 进程与 bundleID com.blablafy.ios.blablapay” UserInfo={BSErrorCodeDescription=bootstrap-失败,NSLocalizedFailureReason=进程已存在对于作业规范,NSLocalizedDescription=Unable to bootstrap process with bundleID com.blablafy.ios.blablapay}

我发现了一个类似的 post 建议检查 配置文件和证书 。都没过期!所有提到的证书的信任设置是“使用系统默认值”。

我可以检查或做些什么来让它工作?

我们终于找到了Xamarin.Forms.Visual.Material。微软的 Xamarin 团队帮助我们进行了调查,他们发现 Apple Store 和 TestFlight 在将应用程序发送到 32 位 iPhone 时完全删除了应用程序中的所有原生框架,因此在启动时崩溃。至少,这发生在 Xamarin.Forms.Visual.Material.

糟糕的是,这只会在使用 Testflight 或 App Store 分发时发生。如果您手动将应用程序发送到设备(例如从 Visual Studio 调试)或使用 AdHoc 机制,它的工作就像一个魅力。不幸的是,正因为如此,您可能仅在尝试分发它的最后阶段才意识到该问题。

因此,解决方案是删除对 Xamarin.Forms.Visual.Material 的任何依赖并删除像 FormsMaterial.Init()[=22= 这样的代码].

如果您打算忽略使用 32 位设备的用户,您也可以忽略此 post 和此问题。