【问题标题】:Xamarin App Fails to Start on IOS device after device update to IOS 12设备更新到 IOS 12 后,Xamarin 应用程序无法在 IOS 设备上启动
【发布时间】:2018-10-23 14:27:46
【问题描述】:

我已将设备上的 IOS 更新到 12.0.1 并将 XCode 更新到版本 10。我能够构建应用程序,使用 IOS 12 部署到 Mac 上的模拟器,但是当我将应用程序部署到它启动的设备时,会显示飞溅屏幕并退出。图标保持不变,但应用程序将始终在启动后下降。

我尝试调试,但它甚至没有到达 Native 或 PCL 代码中 Main 或 App 的任何构造函数。

我什至不知道下一步该尝试什么。我拥有的所有信息是:

启动失败。无法在“iPhone (Yuriy)”上启动应用程序“Tempick.iOS”。错误:错误 MT1007:无法在设备“iPhone”( Yuriy)': 指定的演员表无效..您仍然可以通过点击它手动启动应用程序..请查看日志以获取更多详细信息。

我在网上只能找到重启 XCode、重启设备、删除应用、重启 MAC。我尝试了所有这些,但它不起作用。

我拥有的所有应用都遇到了这种情况。我感觉它与在设备上更新 IOS 后无法识别的配置文件/证书有关。有没有人遇到过类似的问题?

更新

我能够追踪设备日志,内容如下:

Time    Device Name Type    PID Tag Message
Oct 23 17:37:23 iPhone-Yuriy    Error   52  SpringBoard(AssertionServices)  [com.maddyz.Tempick] Bootstrap failed with error: <NSError: 0x282837d80; domain: BKSProcessErrorDomain; code: 1 (bootstrap-failed); reason: "Failed to start job">

______

Time    Device Name Type    PID Tag Message
Oct 23 17:37:23 iPhone-Yuriy    Error   52  SpringBoard(FrontBoard) Bootstrapping failed for <FBApplicationProcess: 0x10a7dda10; com.maddyz.Tempick; pid: -1> with error: Error Domain=BKSProcessErrorDomain Code=1 "Unable to bootstrap process with bundleID com.maddyz.Tempick" UserInfo={NSLocalizedDescription=Unable to bootstrap process with bundleID com.maddyz.Tempick, BKSProcessExitReason=0, NSLocalizedFailureReason=Failed to start job, NSUnderlyingError=0x282836e20 {Error Domain=NSPOSIXErrorDomain Code=3 "No such process" UserInfo={BKLaunchdOperation=launch_get_running_pid_4SB, NSLocalizedDescription=Unable to get pid for label UIKitApplication:com.maddyz.Tempick[0x482d][62], BKLaunchdJobLabel=UIKitApplication:com.maddyz.Tempick[0x482d][62], NSLocalizedFailureReason=No such process}}, BKSProcessJobLabel=UIKitApplication:com.maddyz.Tempick[0x482d][62], BSErrorCodeDescription=bootstrap-failed}

【问题讨论】:

    标签: xamarin xamarin.forms xamarin.ios


    【解决方案1】:

    在我尝试了很多方法后,我终于找到了一个打印以下内容的设备日志通知:

    Time    Device Name Type    PID Tag Message
    Oct 24 12:50:41 iPhone-Yuriy    Notice  0   kernel(AppleMobileFileIntegrity)    AMFI: '/private/var/containers/Bundle/Application/4D4359E4-8947-425E-95B4-82AC4D910449/IOS12Test.iOS.app/IOS12Test.iOS' does not pass CT evaluation, result: 0x80008
    
    Oct 24 12:50:41 iPhone-Yuriy    Notice  0   kernel(AppleMobileFileIntegrity)    AMFI: '/private/var/containers/Bundle/Application/4D4359E4-8947-425E-95B4-82AC4D910449/IOS12Test.iOS.app/IOS12Test.iOS': Unrecoverable CT signature issue, bailing out.
    

    在谷歌上搜索了一下之后,我发现了另一个堆栈消息 iOS app won't run on device any more under iOS 12: Unrecoverable CT signature issue

    在将权限更改为 Apple 全球开发者关系证书颁发机构以使用系统默认值后,我能够启动演示应用程序。

    【讨论】:

      【解决方案2】:

      我自己仍在学习如何使用 Xamarin.iOS,但我遇到了同样的问题。它与链接器有关。打开 iOS 项目属性并在 iOS Build 下将 Linker Behavior 更改为 Don't Link。这应该可以让您在物理设备上进行调试,但应用程序太大而无法部署到应用商店。

      我不知道这是否适用于您,但我还必须将项目的 Entity Framework Core 包降级到 2.0.3。我在其他地方读到其他人在使用更高版本时遇到问题。

      【讨论】:

        【解决方案3】:

        在 Windows 上 Xamarin.Forms 无法从设备自身进行调试。甚至对于 iOS 的“Xamarin Live Player”也已过期。 您应该连接到 MAC 以便为您的项目进行构建。 甚至像 PhoneGap 这样的其他一些框架也不适用于 iOS 了。

        Apple 一如既往地为自己着想。

        【讨论】:

        • 我已连接并在 MAC 上构建
        • @Adrian:抱歉,您的回答完全错误。我目前正在我的 iPhone 上调试我的 Xamarin.Forms 应用程序。
        猜你喜欢
        • 1970-01-01
        • 2019-11-03
        • 2017-02-05
        • 2021-01-16
        • 2017-05-19
        • 1970-01-01
        • 2011-09-14
        • 1970-01-01
        • 2021-07-14
        相关资源
        最近更新 更多