From e4d421d4e05800139e53db083afa15588051cafe Mon Sep 17 00:00:00 2001 From: relikd Date: Thu, 30 Oct 2025 18:52:33 +0100 Subject: [PATCH] doc: add Console instructions to readme --- QLAppBundle.xcodeproj/project.pbxproj | 22 ++++++++++++---------- QLPreview/PreviewViewController.swift | 1 - QLThumbnail/ThumbnailProvider.swift | 3 +-- README.md | 10 ++++++++++ 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/QLAppBundle.xcodeproj/project.pbxproj b/QLAppBundle.xcodeproj/project.pbxproj index 177d858..3fd6bbb 100644 --- a/QLAppBundle.xcodeproj/project.pbxproj +++ b/QLAppBundle.xcodeproj/project.pbxproj @@ -21,7 +21,6 @@ 54581FD12EB29A0B0043A0B3 /* QuickLookThumbnailing.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54581FD02EB29A0B0043A0B3 /* QuickLookThumbnailing.framework */; }; 54581FD22EB29A0B0043A0B3 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54442C222E378BAF008A870E /* Quartz.framework */; }; 54581FDA2EB29A0B0043A0B3 /* QLThumbnail.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 54581FCF2EB29A0B0043A0B3 /* QLThumbnail.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 545820222EB29B3D0043A0B3 /* ThumbnailProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5458201F2EB29B3D0043A0B3 /* ThumbnailProvider.swift */; }; 545820232EB29B4C0043A0B3 /* defaultIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 54D3A6F22EA4603B001EF4F6 /* defaultIcon.png */; }; 5469E11D2EA5930C00D46CE7 /* Entitlements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5469E11C2EA5930C00D46CE7 /* Entitlements.swift */; }; 5478996F2EB38EBB00F96B80 /* CoreUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54D3A6F52EA4610B001EF4F6 /* CoreUI.framework */; }; @@ -41,6 +40,7 @@ 547F52F42EB2CA05002B6D5F /* Html+Entitlements.swift in Sources */ = {isa = PBXBuildFile; fileRef = 547F52F32EB2CA05002B6D5F /* Html+Entitlements.swift */; }; 547F52F72EB2CAC7002B6D5F /* Html+Footer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 547F52F62EB2CAC7002B6D5F /* Html+Footer.swift */; }; 547F52F92EB2CBAB002B6D5F /* Date+Format.swift in Sources */ = {isa = PBXBuildFile; fileRef = 547F52F82EB2CBAB002B6D5F /* Date+Format.swift */; }; + 54AE5BFF2EB3DB1000B4CFC7 /* ThumbnailProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54AE5BFD2EB3DB1000B4CFC7 /* ThumbnailProvider.swift */; }; 54D3A6EC2EA31B52001EF4F6 /* AppCategories.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D3A6EB2EA31B52001EF4F6 /* AppCategories.swift */; }; 54D3A6EE2EA39CC6001EF4F6 /* AppIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D3A6ED2EA39CC6001EF4F6 /* AppIcon.swift */; }; 54D3A6F02EA3F49F001EF4F6 /* NSBezierPath+RoundedRect.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54D3A6EF2EA3F49F001EF4F6 /* NSBezierPath+RoundedRect.swift */; }; @@ -85,6 +85,7 @@ 5405CF642EA1376B00613856 /* Zip.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Zip.swift; sourceTree = ""; }; 543FE5732EB3BB5E0059F98B /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = ""; }; 543FE5752EB3BC740059F98B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 543FE5772EB3DAA20059F98B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 54442BF42E378B71008A870E /* QLAppBundle (debug).app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "QLAppBundle (debug).app"; sourceTree = BUILT_PRODUCTS_DIR; }; 54442C202E378BAF008A870E /* QLPreview.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = QLPreview.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 54442C222E378BAF008A870E /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; @@ -98,9 +99,6 @@ 545459C62EA4773A002892E5 /* AppIcon+Car.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppIcon+Car.swift"; sourceTree = ""; }; 54581FCF2EB29A0B0043A0B3 /* QLThumbnail.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = QLThumbnail.appex; sourceTree = BUILT_PRODUCTS_DIR; }; 54581FD02EB29A0B0043A0B3 /* QuickLookThumbnailing.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLookThumbnailing.framework; path = System/Library/Frameworks/QuickLookThumbnailing.framework; sourceTree = SDKROOT; }; - 5458201D2EB29B3D0043A0B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5458201E2EB29B3D0043A0B3 /* QLThumbnail.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = QLThumbnail.entitlements; sourceTree = ""; }; - 5458201F2EB29B3D0043A0B3 /* ThumbnailProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThumbnailProvider.swift; sourceTree = ""; }; 5469E11C2EA5930C00D46CE7 /* Entitlements.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Entitlements.swift; sourceTree = ""; }; 547F52DC2EB2C15D002B6D5F /* ExpirationStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpirationStatus.swift; sourceTree = ""; }; 547F52E32EB2C3D8002B6D5F /* Html+iTunesPurchase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Html+iTunesPurchase.swift"; sourceTree = ""; }; @@ -114,6 +112,9 @@ 547F52FB2EB37F10002B6D5F /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 547F52FC2EB37F3A002B6D5F /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 5485EE362EB1460C009E3905 /* Network.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Network.framework; path = System/Library/Frameworks/Network.framework; sourceTree = SDKROOT; }; + 54AE5BFB2EB3DB1000B4CFC7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 54AE5BFC2EB3DB1000B4CFC7 /* QLThumbnail.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = QLThumbnail.entitlements; sourceTree = ""; }; + 54AE5BFD2EB3DB1000B4CFC7 /* ThumbnailProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThumbnailProvider.swift; sourceTree = ""; }; 54D3A6EB2EA31B52001EF4F6 /* AppCategories.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCategories.swift; sourceTree = ""; }; 54D3A6ED2EA39CC6001EF4F6 /* AppIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppIcon.swift; sourceTree = ""; }; 54D3A6EF2EA3F49F001EF4F6 /* NSBezierPath+RoundedRect.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSBezierPath+RoundedRect.swift"; sourceTree = ""; }; @@ -196,7 +197,7 @@ 54D3A6F42EA46069001EF4F6 /* resources */, 54442C6F2E378BDD008A870E /* App */, 54442C782E378BE0008A870E /* QLPreview */, - 545820202EB29B3D0043A0B3 /* QLThumbnail */, + 54AE5BFE2EB3DB1000B4CFC7 /* QLThumbnail */, 54442C212E378BAF008A870E /* Frameworks */, 54442BF52E378B71008A870E /* Products */, ); @@ -215,6 +216,7 @@ 54442C212E378BAF008A870E /* Frameworks */ = { isa = PBXGroup; children = ( + 543FE5772EB3DAA20059F98B /* Foundation.framework */, 54E087572EB148E700979D91 /* WebKit.framework */, 54E087552EB148DF00979D91 /* Security.framework */, 54E087532EB148DB00979D91 /* QuickLook.framework */, @@ -253,12 +255,12 @@ path = QLPreview; sourceTree = ""; }; - 545820202EB29B3D0043A0B3 /* QLThumbnail */ = { + 54AE5BFE2EB3DB1000B4CFC7 /* QLThumbnail */ = { isa = PBXGroup; children = ( - 5458201D2EB29B3D0043A0B3 /* Info.plist */, - 5458201E2EB29B3D0043A0B3 /* QLThumbnail.entitlements */, - 5458201F2EB29B3D0043A0B3 /* ThumbnailProvider.swift */, + 54AE5BFB2EB3DB1000B4CFC7 /* Info.plist */, + 54AE5BFC2EB3DB1000B4CFC7 /* QLThumbnail.entitlements */, + 54AE5BFD2EB3DB1000B4CFC7 /* ThumbnailProvider.swift */, ); path = QLThumbnail; sourceTree = ""; @@ -458,8 +460,8 @@ 547899712EB38F3D00F96B80 /* Zip.swift in Sources */, 547899722EB38F3D00F96B80 /* MetaInfo.swift in Sources */, 547899732EB38F3D00F96B80 /* NSBezierPath+RoundedRect.swift in Sources */, + 54AE5BFF2EB3DB1000B4CFC7 /* ThumbnailProvider.swift in Sources */, 547899752EB38F3D00F96B80 /* AppIcon.swift in Sources */, - 545820222EB29B3D0043A0B3 /* ThumbnailProvider.swift in Sources */, 547899772EB38FD400F96B80 /* AppIcon+Car.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/QLPreview/PreviewViewController.swift b/QLPreview/PreviewViewController.swift index e56191e..253ebd3 100644 --- a/QLPreview/PreviewViewController.swift +++ b/QLPreview/PreviewViewController.swift @@ -3,7 +3,6 @@ import Quartz // QLPreviewingController import WebKit // WebView import os // OSLog -// show Console logs with subsystem:de.relikd.QLAppBundle private let log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "preview-plugin") class PreviewViewController: NSViewController, QLPreviewingController { diff --git a/QLThumbnail/ThumbnailProvider.swift b/QLThumbnail/ThumbnailProvider.swift index c4b8e89..1887385 100644 --- a/QLThumbnail/ThumbnailProvider.swift +++ b/QLThumbnail/ThumbnailProvider.swift @@ -1,7 +1,6 @@ import QuickLookThumbnailing import os // OSLog -// show Console logs with subsystem:de.relikd.QLAppBundle private let log = OSLog(subsystem: Bundle.main.bundleIdentifier!, category: "thumbnail-plugin") extension QLThumbnailReply { @@ -18,7 +17,7 @@ extension QLThumbnailReply { class ThumbnailProvider: QLThumbnailProvider { - // TODO: sadly, this does not seem to work for .xarchive and .appex + // TODO: sadly, this does not seem to work for .xcarchive and .appex // Probably overwritten by Apple somehow override func provideThumbnail(for request: QLFileThumbnailRequest, _ handler: @escaping (QLThumbnailReply?, Error?) -> Void) { diff --git a/README.md b/README.md index 1557632..ae82a74 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,14 @@ Also, I've removed support for provisioning profiles (`.mobileprovision`, `.prov ## Development notes + +### Debug + +You can show Console logs with `subsystem:de.relikd.QLAppBundle` + + +### Compile errors + If you encounter compile errors like: ``` @@ -43,6 +51,8 @@ or Could not build Objective-C module 'ExtensionFoundation' ``` +or `ThumbnailProvider` is throwing lots of errors for undefined classes: + remove the `SYSTEM_FRAMEWORK_SEARCH_PATHS` attribute from Project > Build Settings then try to compile again (it will fail). Afterwards, restore the value in the attribute. Now, the build index should be up-to-date and the app should compile fine.