Post

Replies

Boosts

Views

Activity

Thumbnail preview extension crashing when loading WKWebView
Developing a thumbnail extension for a custom file type in my iOS app. I am using a WKWebView to render an HTML string and then capturing a snapshot of the WKWebView to use for the thumbnail image. Works great on simulators. However, not completing when run on a real device. Here is the code: &#9;&#9;let thumbFileView = WKWebView(frame: frame) &#9;&#9;thumbFileView.navigationDelegate = self &#9;&#9;thumbFileView.pageZoom = scale &#9;&#9;thumbFileView.layoutIfNeeded() &#9;&#9;thumbFileView.loadHTMLString(thumbFile.asHtml, baseURL: nil) Thumbnail image is perfect on simulator, but on real device there is a crash in the logs: 2020-12-08 11:01:30.191156-0700 ThumbFileThumbnail[35519:906998] [] networkd_settings_setup_notify_watch notify_register_dispatch(com.apple.system.networkd.settings) [status 9] failed 2020-12-08 11:01:30.205445-0700 ThumbFileThumbnail[35519:906998] [] networkd_settings_setup_notify_watch notify_register_dispatch(com.apple.system.networkd.settings) [status 9] failed, dumping backtrace: &#9;&#9;&#9;&#9;[arm64] libnetcore-2288.42.1 &#9;&#9;0&#9; libnetwork.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001a2ce1658 __nw_create_backtrace_string + 116 &#9;&#9;1&#9; libnetwork.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001a2c6ffdc C67A2D71-4415-3F82-9399-65C3956520AE + 5832668 &#9;&#9;2&#9; libnetwork.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001a2c6f6c0 C67A2D71-4415-3F82-9399-65C3956520AE + 5830336 &#9;&#9;3&#9; libnetwork.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001a2a777d0 C67A2D71-4415-3F82-9399-65C3956520AE + 3766224 &#9;&#9;4&#9; libnetwork.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001a2c26408 nw_path_create_evaluator_for_endpoint_no_evaluate + 544 &#9;&#9;5&#9; libnetwork.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001a2c25ee0 nw_path_create_evaluator_for_endpoint + 84 &#9;&#9;6&#9; Network&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x00000001b5a063e0 2FB89D76-EA38-3B43-BCD1-E0C7EE9B9012 + 1180640 &#9;&#9;7&#9; Network&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x00000001b5a058b4 2FB89D76-EA38-3B43-BCD1-E0C7EE9B9012 + 1177780 &#9;&#9;8&#9; libdispatch.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x00000001a18c0280 6C143C51-288F-3CD0-84DD-17B9A0AAEE62 + 397952 &#9;&#9;9&#9; libdispatch.dylib&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x00000001a18642f4 6C143C51-288F-3CD0-84DD-17B9A0AAEE62 + 21236 &#9;&#9;10&#9;Network&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9; 0x00000001b5a05888 2FB89D76-EA38-3B43-BCD1-E0C7EE9B9012 + 1177736 &#9;&#9;11&#9;NetworkExtension&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001b268a4e4 4F673F38-E238-37C5-9B26-2A540CB429B9 + 357604 &#9;&#9;12&#9;WebKit&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001ad9a8334 19789FD9-1098-37B7-B639-9E4F0EB867D6 + 2847540 &#9;&#9;13&#9;WebKit&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001ada0bdc8 19789FD9-1098-37B7-B639-9E4F0EB867D6 + 3255752 &#9;&#9;14&#9;WebKit&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001ada0ba20 19789FD9-1098-37B7-B639-9E4F0EB867D6 + 3254816 &#9;&#9;15&#9;WebKit&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001ad6fda9c 19789FD9-1098-37B7-B639-9E4F0EB867D6 + 51868 &#9;&#9;16&#9;ThumbFileThumbnail&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001044f4ee8 $s18ThumbFileThumbnail0abC9GeneratorC04loadaB4View3for2in5scaleSo05WKWebF0CAA0aB0V_So6CGRectV12CoreGraphics7CGFloatVtF + 704 &#9;&#9;17&#9;ThumbFileThumbnail&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;0x00000001044f42a4 $s18ThumbFileThumbnail0abC9GeneratorC20provideSnapshotImage3for5scale5frame10completionyAA0aB0V_12CoreGraphics7CGFloatVSo6CGRectVySo7UIImageCSgctFyycfU_ + 204 From setting a runtime issues breakpoint, the offending line of code is: &#9;&#9;thumbFileView.loadHTMLString(thumbFile.asHtml, baseURL: nil) Since the html contains an image URL, this seems to point to some limitation that iOS is placing on the thumbnail extension that is blocking it from accessing the network. This is evident from the crash log and from the stack at the time of the issue. I've studied Apple's documentation of NSExtensionAttributes and can't find anything that would address this permission issue. Here are the NSExtensionAttributes for the thumbnail extension: &#9; <key>NSExtension</key> &#9;&#9;<dict> &#9;&#9;&#9;&#9;<key>NSExtensionAttributes</key> &#9;&#9;&#9;&#9;<dict> &#9;&#9;&#9;&#9;&#9;&#9;<key>QLSupportedContentTypes</key> &#9;&#9;&#9;&#9;&#9;&#9;<array> &#9;&#9;&#9;&#9;&#9;&#9;&#9;&#9;<string>com.raywenderlich.RazeThumb.ThumbFile</string> &#9;&#9;&#9;&#9;&#9;&#9;</array> &#9;&#9;&#9;&#9;&#9;&#9;<key>QLThumbnailMinimumDimension</key> &#9;&#9;&#9;&#9;&#9;&#9;<integer>0</integer> &#9;&#9;&#9;&#9;</dict> Why is this crashing on a real device but not on a simulator?
0
0
762
Dec ’20