应用程序崩溃立即在iOS模拟器与os版本15及以上

v2g6jxz6  于 12个月前  发布在  iOS
关注(0)|答案(2)|浏览(113)

我正试图在iOS模拟器上运行一个应用程序,操作系统版本为15.2,应用程序立即崩溃。我也尝试运行在模拟器与操作系统版本13.7和一切工作.我还想指出的是,在一个操作系统为15.0.1的真实的设备上测试工作正常,只有操作系统为15及以上的模拟器才有问题。(我没有在OS 14上尝试)。
我看到的例外是:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL URLByAppendingPathExtension:]: component, components, or pathExtension cannot be nil.'

我还在日志中看到以下错误

2022-01-23 22:17:56.420470+0200 ********[99005:556023] [Assert] failed to get type for URL (file:///Users/**********/Library/Developer/CoreSimulator/Devices/70A52D90-4707-4CF8-9804-D2F030583E8D/data/Containers/Data/Application/97394EA4-CEB7-45FC-B624-41389A934FC0/Library/MyDocument.md) error: The file “MyDocument.md” couldn’t be opened because there is no such file.

它要找的MyDocument.md是什么
下面是callstack:

0   CoreFoundation                      0x000000010b5f6ba4 __exceptionPreprocess + 242
    1   libobjc.A.dylib                     0x00000001097f4be7 objc_exception_throw + 48
    2   Foundation                          0x00000001092a2fe8 -[NSURL(NSURLPathUtilities) URLByDeletingPathExtension] + 0
    3   UIKitCore                           0x000000011ae3d46b -[UIDocument saveToURL:forSaveOperation:completionHandler:] + 270
    4   FLOTelematicsSDK                    0x0000000109fb4b75 _Z35FLOEncryption_streamBlockEnryptDataP20FLOEncryptionContext17Uint32PointerData + 11764
    5   FLOTelematicsSDK                    0x0000000109fb65e1 _Z35FLOEncryption_streamBlockEnryptDataP20FLOEncryptionContext17Uint32PointerData + 18528
    6   libdispatch.dylib                   0x0000000109a0565a _dispatch_call_block_and_release + 12
    7   libdispatch.dylib                   0x0000000109a0683a _dispatch_client_callout + 8
    8   libdispatch.dylib                   0x0000000109a13c88 _dispatch_main_queue_callback_4CF + 1075
    9   CoreFoundation                      0x000000010b56484d __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
    10  CoreFoundation                      0x000000010b55f0aa __CFRunLoopRun + 2772
    11  CoreFoundation                      0x000000010b55e0f3 CFRunLoopRunSpecific + 567
    12  GraphicsServices                    0x000000010ed0dcd3 GSEventRunModal + 139
    13  UIKitCore                           0x000000011b548f42 -[UIApplication _run] + 928
    14  UIKitCore                           0x000000011b54db5e UIApplicationMain + 101
    15  SDKSandbox                          0x000000010081b60b main + 80
    16  dyld                                0x0000000108fadee9 start_sim + 10
    17  ???                                 0x0000000200ad34fe 0x0 + 8601285886
    18  ???                                 0x0000000200ace000 0x0 + 8601264128
)

有人遇到过这样的事情吗?

旁注:

1.我的应用使用了第三方SDK,会不会是SDK有问题?

  1. xCode版本13.2.1
snz8szmq

snz8szmq1#

Satya5614:- https://developer.apple.com/forums/thread/733326?page=2
在iOS 17模拟器上运行应用程序时,我在react-native项目中遇到了同样的问题。在我的头撞了两天后,我终于解决了这个问题。
原因此错误的原因是UIGraphicsBeginImageContext和UIGraphicsBeginImageContextWithOption已贬值。
若要修复此问题,请删除、注解或使用UIGraphicsImageRenderer替换UIGraphicsBeginImageContext和UIGraphicsBeginImageContextWithOption。要做到这一点,这里是我遵循的步骤。
1.首先使用命令grep -r“UIGraphicsBeginImageContext”搜索整个项目。/这将使用UIGraphicsBeginImageContext或UIGraphicsBeginImageContextWithOption列出所有文件。这一步很重要,因为你不知道有多少个包引用了UIGraphicsBeginImageContext。在我的例子中,我有几个react-native包以及具有UIGraphicsBeginImageContext的Pod
1.然后逐个删除或替换为UIGraphicsImageRenderer。如果你对目标c没有很好的了解,用UIGraphicsImageRenderer替换会很棘手。所以,我建议先评论,然后检查解决方案是否适合你。
1.清理项目,从模拟器中删除应用程序,然后重新安装。希望这将解决这个问题。对我来说是的。

ut6juiuv

ut6juiuv2#

正如matt在评论中指出的那样,问题确实出在SDK上。

相关问题