无法在Xcode下调试我的QuickLook插件

5

我正在编写一个Quicklook插件,用于预览应用包。当我在Yosemite上尝试在Xcode 6.1下调试它时,无法使其工作。 “Quicklookd”在dock中启动并保持打开状态,但没有渲染任何预览,并且在控制台中输出以下内容:

Testing Quick Look preview with files:
    /Applications/Font Book.app
[DEBUG] Preview test for file:///Applications/Font%20Book.app/. Content type UTI: com.apple.application-bundle
[DEBUG] Previewing file:///Applications/Font%20Book.app. Content type UTI: com.apple.application-bundle. Generator used: <QLGenerator /Users/imac/Library/QuickLook/TestPlugin.qlgenerator>
[DEBUG] Loading <QLGenerator /Users/imac/Library/QuickLook/TestPlugin.qlgenerator>
[DEBUG] Previewing file:///Applications/Font%20Book.app finished
2015-02-04 10:59:35.188 qlmanage[1664:138646] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x9103, name = 'com.apple.CFPasteboardClient'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2015-02-04 10:59:35.188 qlmanage[1664:138646] Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const: conn 0x23823 token 0x1ffffffffffe85
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: Backtrace (at 6350.6):
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  0   CoreGraphics                        0x00007fff894a9588 CGSBacktraceCreate + 112
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  1   CoreGraphics                        0x00007fff894c7940 _ZN16CGSUpdateManager14disable_updateEv + 86
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  2   AppKit                              0x00007fff90f0aa25 -[NSWindow disableScreenUpdatesUntilFlush] + 127
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  3   AppKit                              0x00007fff91442e75 -[NSVisualEffectView _createOrUpdateBackdrop:view:vibrancyEffect:] + 823
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  4   AppKit                              0x00007fff91443b92 -[NSVisualEffectView _updateCGSWindowBackdrop] + 70
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  5   AppKit                              0x00007fff91447874 -[NSVisualEffectView _update] + 147
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  6   AppKit                              0x00007fff914475a1 -[NSVisualEffectView layout] + 59
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  7   AppKit                              0x00007fff90eeca64 -[NSView _layoutSubtreeWithOldSize:] + 373
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  8   AppKit                              0x00007fff90eeccb5 -[NSView _layoutSubtreeWithOldSize:] + 966
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  9   AppKit                              0x00007fff90ee04a0 -[NSView layoutSubtreeIfNeeded] + 885
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  10  AppKit                              0x00007fff9155ff0a _NSViewLayoutSubtreesThatUseAutolayoutIfNeeded + 71
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  11  AppKit                              0x00007fff90f4181f -[NSWindow(NSConstraintBasedLayout) _layoutViewTree] + 82
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  12  AppKit                              0x00007fff90f711b9 -[NSWindow(NSConstraintBasedLayout) layoutIfNeeded] + 244
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  13  AppKit                              0x00007fff90fad1de _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints + 612
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  14  AppKit                              0x00007fff915760e1 __83-[NSWindow _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke1531 + 46
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  15  CoreFoundation                      0x00007fff8b97bda7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  16  CoreFoundation                      0x00007fff8b97bd00 __CFRunLoopDoObservers + 368
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  17  CoreFoundation                      0x00007fff8b96de08 __CFRunLoopRun + 872
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  18  CoreFoundation                      0x00007fff8b96d858 CFRunLoopRunSpecific + 296
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  19  QuickLookUI                         0x00007fff93acb8d2 -[QLPreviewView _startTimeOut] + 189
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  20  QuickLookUI                         0x00007fff93aae35e -[QLPreviewPanelController _setCurrentPreviewItem:withTransition:blocking:] + 289
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  21  QuickLookUI                         0x00007fff93aada93 -[QLPreviewPanelController _refreshLayoutAndContentBlocking:] + 250
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  22  QuickLookUI                         0x00007fff93aaf139 -[QLPreviewPanelController willOpen] + 734
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  23  QuickLookUI                         0x00007fff93aa5d04 -[QLPreviewPanel _openWithEffect:willOpen:toFullscreen:] + 897
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  24  qlmanage                            0x0000000107b11e46 qlmanage + 155206
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  25  qlmanage                            0x0000000107af14af qlmanage + 21679
Feb  4 10:59:50 iMac.local qlmanage[1664] <Warning>: void CGSUpdateManager::log() const:  26  libdyld.dylib                       0x00007fff875985c9 start + 1

然而,如果我通过Finder(按下空格键)进行测试,则可以正常显示预览。问题是我无法调试它并且没有得到任何日志记录。 我正在使用'kUTTypeHTML'内容类型UTI和QLPreviewRequestSetDataRepresentation。

如何解决这个问题?在旧版Xcode和OS X上它曾经工作得很好。 我需要能够从Xcode调试我的插件。谢谢。


我刚刚测试了将内容类型 UTI 更改为 'kUTTypePlainText',在 Xcode 下进行调试和渲染都很好。这是什么原因呢? - Anubis
1个回答

1
我认为很明显这是qlmanage的一个错误(在10.10.3测试版中仍然存在),它无法正确显示HTML输出。
您可以使用两种解决方法:
  1. 如果生成缩略图的代码与预览的代码非常相似,并且使用了QLThumbnailRequestSetThumbnailWithDataRepresentation,则可以使用qlmanage -t(或-t -s someBiggerNumber)。
  2. 使用qlmanage -o dir将生成的HTML输出到文件中,然后可以使用Finder中的Quicklook进行检查。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接