[英]How do I run a QuickLook Plugin built with Xcode 5.1?
在基於Xcode 5.1的OSX Mavericks上構建時,我無法運行QuickLook插件。 插件的內容非常簡單(不到20行代碼)。 它僅進行系統調用,並將結果字符串發送到QLPreviewRequestSetDataRepresentation(..)
。
我最初使用Xcode 4.6在Snow Leopard或Mt Lion上創建了該項目。 我能夠編譯並運行項目沒有問題。 當我遷移到Mavericks時,我能夠將舊的.qlgenerator
文件復制到~/Library/QuickLook
,並且插件可以正常工作。 但是,現在我需要使用Xcode 5.1重新編譯該項目。 啟動新的QuickLook Plugin項目時,該項目使用Xcode提供的默認設置,並且正如我提到的那樣,它可以成功構建。 據我所知,編譯后的二進制文件看起來不錯。
我按照以下問題的建議進行調試 : 調試Xcode 4.6中的Quicklook插件 。 但是在運行插件時,我得到以下輸出:
Testing Quick Look preview with files:
~/my-test-file.nc
2014-09-09 16:52:43.071 qlmanage[46315:303] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8c27, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2014-09-09 16:52:43.074 qlmanage[46315:303] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x8f4b, name = 'com.apple.CFPasteboardClient'
See /usr/include/servers/bootstrap_defs.h for the error codes.
2014-09-09 16:52:43.074 qlmanage[46315:303] Failed to allocate communication port for com.apple.CFPasteboardClient; this is likely due to sandbox restrictions
另外,如果我將.qlgenerator
文件(由Xcode 5.1編譯)復制到~/Library/QuickLook
,則無法獲得qlmanage
來拾取新的生成器。
我也發現了這個問題: QuickLook插件因沙箱錯誤而失敗 ,似乎與之相關。 我閱讀了一些有關Apple沙箱應該如何工作的內容,但我不知道如何向QuickLook插件添加權利。 我找不到蘋果文檔中提到的用於添加權利的“功能”面板。
編輯 :這似乎也與以下內容有關: 沙盒自定義qlgenerator(快速查看)插件 。
回答我自己。 通過對qlamange
和一些NSLog
語句使用一些其他命令行選項,我發現該插件在使用Xcode 5.1編譯時實際上可以正常工作,但是我對項目的Info.plist
文件中的UTI
字符串有問題。 這使qlmanage
無法選擇插件。
事實證明,在UTI字符串固定的情況下,當插件通過Xcode運行時,我仍然在Xcode的調試面板中收到沙箱錯誤,但是插件可以正常工作。 當插件被安裝在~/Library/Quicklook
,用正確注冊quicklookd
,沒有任何錯誤,在系統日志中顯示出來,因此所有似乎是好的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.