I'm the developer of Camera RawX (avail on the Mac App Store).
I'm working on Camera RawX for iOS to provide Quick Look support for camera RAW files not supported by iOS.
I use the Files app to open a RAW file to invoke Quick Look on my iPad (it is running iOS 17.6.1).
The RAW file in question is a Fuji compressed RAF file.
When I tap on the RAF file, iOS opens the Quick Look window, but my app's Quick Look extension is not called.
If the RAW file in question is a Sigma Foveon X3F file, a file that has no native Apple RAW support, then my Quick Look extension is called and I'm able to display the image in the Quick Look window without issue.
It seems that a system recognized RAW file extension (RAF in this case), is not triggering my Quick Look extension. On the macOS, this works fine without any issue.
The strange thing is that my Thumbnail extension is being called when the RAW files show up in Files. Even if it is a RAF file. So it seems like a bug to me or am I missing something crucial in my Info.plist file?
Albert
QuickLook
RSS for tagCreate previews of files to use inside your app or perform simple edits on previews using QuickLook.
Posts under QuickLook tag
33 Posts
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
We were using below delegate methods from QuickLook to get modified PDF file URL after the sketching But we are not able see the multi line text properly laid out on PDF and part of text missing. Same time Other pencil kit tools are working as expected.
`func previewController(_ controller: QLPreviewController, didSaveEditedCopyOf previewItem: QLPreviewItem, at modifiedContentsURL: URL)
func previewController(_ controller: QLPreviewController, didUpdateContentsOf previewItem: any QLPreviewItem)`
We tested all code in iOS 18.2.
Please let us know if the text edited URL on PDF can be retrieved in any possible way without tampering text
I have an app on the Mac App Store (so sandboxed) that includes a QuickLook Preview Extension that targets Markdown files. It established a QLPreviewingController instance for the macOS QuickLook system to access and it works.
I'm in the process of updating it so that it displays inline images referenced in the file as well as styling the file's text. However, despite setting Downloads folder read-only access permission (and user-selected, though I know that shouldn't be required: no open/save dialogs here) in the extension's entitlements, Sandbox refuses too allow access to the test image: I always get a deny(1) file-read-data error in the log.
FWIW, the test file is referenced in the source Markdown as an absolute unix file path.
I've tried different signings and no joy. I’ve tried placing the referenced image in various other locations. Also no joy. All I can display is the error-case bundle image for 'missing image'.
Question is, is this simply something that QuickLook extensions cannot do from within the sandbox, or am I missing something? Is there anything extra I can do to debug this?
I've developed a new Quicklook data-based preview extension for a custom file type that generates an image preview of the file. I previously used a Quick Look generator plug-in but support for it was deprecated and now removed in macOS Sequoia.
My app opens files using a
open(url.path, O_RDWR | O_NONBLOCK | O_EXLOCK)
call. The locking flags are used to prevent other clients from writing the file if it's already open.
I discovered that when Finder is showing the “large” file previews (such as when in column or gallery modes) from a SMB share, the open call fails with EWOULDBLOCK as if the file is locked.
It does work just fine on local files. Opening with O_SHLOCK also has the issue. Surprisingly it does work just fine for previews that return Plain Text data instead of Image data.
Using the lsof command, it seems like the Quicklook process has some kind of lock on the file.
This is the output of the lsof command:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE
QuickLook 48487 XXXX txt REG 1,15 125000611 3161369
Attached is a test project that tries a few different opening and locking functions. It also includes a test file and a sample image preview extension that displays a red square.
When everything is working, regular console messages show the progress of the tests. When the file is on a SMB share and selected in Finder Gallery mode, the open test will fail with a fault message in the console.
Notably, locking with flock works, which is weird because it should have similar semantics according to the man page for open(2).
Filed this as FB15051186
Topic:
App & System Services
SubTopic:
General
Tags:
Extensions
QuickLook
QuickLook Thumbnailing
Files and Storage
Hello!
In our App we found out the сrash at QuickLook after users updated their iPhones up to iOS 18.
Crash report:
SIGABRT 0x0000000000000000
Crashed: Thread
0 libsystem_kernel.dylib __abort_with_payload + 8
1 libsystem_kernel.dylib abort_with_payload_wrapper_internal + 104
2 libsystem_kernel.dylib abort_with_payload_wrapper_internal + 0
3 libobjc.A.dylib _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 116
4 libobjc.A.dylib _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 0
5 libobjc.A.dylib weak_register_no_lock + 396
6 libobjc.A.dylib objc_initWeak + 440
7 UIKitCore -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 1412
8 UIKitCore -[_UIRemoteViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 396
9 UIKitCore -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1180
10 UIKitCore -[_UISizeTrackingView _didMoveFromWindow:toWindow:] + 112
11 UIKitCore -[UIView(Internal) _didMoveFromWindow:toWindow:] + 712
12 UIKitCore __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 128
13 CoreAutoLayout -[NSISEngine withBehaviors:performModifications:] + 84
14 UIKitCore -[UIView _postMovedFromSuperview:] + 512
15 UIKitCore __UIViewWasRemovedFromSuperview + 136
16 UIKitCore -[UIView(Hierarchy) removeFromSuperview] + 248
17 QuickLook -[QLToolbarController setAccessoryView:animated:] + 576
18 QuickLook __55-[QLPreviewController _presentLoadedPreviewCollection:]_block_invoke + 120
19 QuickLookUICore QLRunInMainThread + 60
20 QuickLook -[QLPreviewController _presentLoadedPreviewCollection:] + 116
21 QuickLook __48-[QLPreviewController _presentPreviewCollection]_block_invoke_2 + 68
22 QuickLook (Missing)
23 libswift_Concurrency.dylib swift::runJobInEstablishedExecutorContext(swift::Job*) + 252
After research, we found out that a crash occurs in QuickLook when a user tries to open a file with unknown mimeType - application/octet-stream.
QuickLook convert that files to known type (for an example - application/pdf), but crashes for the first opening the file.
Any help would be greatly appreciated!
Hello everyone, I've encountered an issue with SwiftUI Preview and would appreciate your help.
Problem Description In a mixed Objective-C and Swift project, I'm experiencing the following situation with SwiftUI Preview:
Crashes when previewing on a physical device
The same code runs normally when launched directly through Xcode
Project uses CocoaPods for dependency management with static frameworks
Project Environment:
Project Type: Mixed (Objective-C + Swift)
Dependency Management: CocoaPods
Dependency Type: Static frameworks
Device: Physical device preview
Steps to Reproduce:
Write Preview code in SwiftUI file
Select physical device as Preview device
Click Preview button
Application crashes
We found some Firebase crashes in QLPreviewController on iOS18.1 +.
It shows cash info in QLPreviewController that we haven't changed for some years.
Please help with this.
Thanks in advance.
// stack info from Firebase
Fatal Exception: NSInvalidArgumentException
*** -[NSURL URLByAppendingPathComponent:]: component, components, or pathExtension cannot be nil.
0
CoreFoundation
__exceptionPreprocess
1
libobjc.A.dylib
objc_exception_throw
2
Foundation
-[NSURL(NSURLPathUtilities) URLByAppendingPathComponent:]
3
QuickLookUICore
+[NSURL(_QL_Utilities) _QLTemporaryFileURLWithType:filename:]
4
QuickLookUICore
+[NSURL(_QL_Utilities) _QLTemporaryFileURLWithType:uuid:]
5
QuickLook
-[QLPreviewController(ScreenshotsSupport) screenshotService:generatePDFRepresentationWithCompletion:]
6
ScreenshotServices
__82+[SSScreenshotMetadataHarvester _grabPDFRepresentationForIdentifier:withCallback:]_block_invoke_3
7
libdispatch.dylib
_dispatch_call_block_and_release
8
libdispatch.dylib
_dispatch_client_callout
9
libdispatch.dylib
_dispatch_main_queue_drain
10
libdispatch.dylib
_dispatch_main_queue_callback_4CF
11
CoreFoundation
__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
12
CoreFoundation
__CFRunLoopRun
13
CoreFoundation
CFRunLoopRunSpecific
14
GraphicsServices
GSEventRunModal
15
UIKitCore
-[UIApplication _run]
16
UIKitCore
UIApplicationMain
17
Glip
main.swift - Line 13
main + 13
The app or its metadata appears to contain potentially misleading content. Specifically, the app includes content that resembles AlphaCargo without the necessary authorizatin.
I'm currently migrating a midsize (20k LOC) project to Swift structured concurrency. With complete checking turned on, it currently builds with only two warnings, both of which are related to the QLPreviewControllerDelegate protocol:
"Main actor-isolated instance method 'previewControllerDidDismiss' cannot be used to satisfy nonisolated protocol requirement; this is an error in the Swift 6 language mode" as well as the same warning but substituting 'previewController(_:transitionViewFor:)' for the method name.
I'm confused as to how to make these nonisolated, as they use UIKit classes/subclasses as arguments and/or return types.
QLPreviewView was used in the app to display the file previews. But the following crash was happening.
Date/Time: 2024-09-13 22:03:59.056 +0530
OS Version: Mac OS X 10.13.6 (17G14042)
Report Version: 12
Anonymous UUID: 7CA3750A-2BDD-3FFF-5940-E5EEAE2E55F5
Time Awake Since Boot: 4300 seconds
System Integrity Protection: disabled
Notes: Translocated Process
Crashed Thread: 0
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: DYLD, [0x1] Library missing
Application Specific Information:
dyld: launch, loading dependent libraries
Dyld Error Message:
Library not loaded: /System/Library/Frameworks/QuickLookUI.framework/Versions/A/QuickLookUI
Referenced from: /private/var/folders/*/Notebook (Beta).app/Contents/MacOS/Notebook (Beta)
Reason: image not found
I'm implementing a QuickLook extension through the macOS extension point com.apple.quicklook.preview using the view-based method where I implement QLPreviewingController to show information about the previewed file url.
This NSView controlled by my QLPreviewingController supports no interaction which makes sense, but I see some other QuickLook previews like for videos having toolbar button to open other apps or modify the content.
How can I get similar behaviour?
I am creating an iOS app to install on legacy iPads running iOS 9 and up, using XCode 13.4.1 which is the latest version that will support iOS below 11. The app is working fine but I just added a QuickLook Preview extension, and on iOS 10.3.1 it will not install due to the following error:
This app contains an app extension that specifies an extension point identifier that is not supported on this version of iOS for the value of the NSExtensionPointIdentifier key in its Info.plist. Domain: com.apple.dt.MobileDeviceErrorDomain Code: -402653007
The NSExtensionPointIdentifier key in Info.plist is set by XCode automatically to "com.apple.quicklook.preview".
I want to set the iOS Deployment Target to the lowest iOS version that will support this configuration. The documentation does not provide any guide as to which specific NSExtensionPointIdentifier keys are compatible with which iOS version. It just says 8+ for the whole list. Trial-and-error is limited by availability of legacy Simulators.
If anyone can point to documentation that indicates which iOS is supported by which NSExtensionPointIdentifier key com.apple.quicklook.preview, I would be very grateful. Thanks
(I understand about lack of App Store support etc, this is an app for my use on old iPads)
I created a project using Reality Composer Pro. When I export to a .usdz file, it works well on iPhone 13, 14, 15, and 16 but not on iPhone 12 and 11.
In the timeline, I use a behaviour that is on added to scene to active intro animation and loop background audio. But it does not work on old device like iPhone 12 and 11. Also, all interactive taps/touch points/audio don't seem to work too.
Iphone 13,14,15,16 is on ios 18.1.
iPhone 11, 12 is on ios 17.6.1.
Here is sample usdz file exported from REality Composer Pro 2.0 that has problem above: https://drive.google.com/file/d/1sHZn9JABTswLq2flYjToTbWDuE5T7eNw/view?usp=sharing