簡體   English   中英

如何運行Xcode 5.1內置的QuickLook插件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM