我開發了一個保存和加載唯一類型文件的Mac應用程序。該類型在CFBundleDocumentTypes下的info.plist中正確聲明,列爲LSHandlerRank:Owner和CFBundleTypeRole:Editor。我發佈了我的應用程序的新版本,如果已在用戶計算機上安裝了舊版本應用程序的用戶安裝了新版本,並且還安裝了舊版本,那麼新版本會自動接管文件關聯這種類型來自舊版本的應用程序。但默認的操作系統行爲似乎是授予與文件類型關聯的最早安裝的應用程序爲永久所有者,除非用戶手動更改它。我知道命令行工具duti可以進行關聯更改,並且還可以編輯系統文件com.apple.LaunchServices.plist,但這些似乎不是通過應用程序以編程方式執行此操作的最佳或最可靠的方法。是否有任何「正確」/蘋果認可的方式去做我想要的?通過info.plist中的CFBundleDocumentTypes覆蓋Mac應用程序文件關聯
4
A
回答
3
蘋果官方認可的應用程序設置文件類型的默認應用程序可能使用其提供的LSSetDefaultRoleHandlerForContentType
函數。該函數設置存儲在LaunchServices中的值。
Here是如何在Objective-C和斯威夫特使用此API有限的官方文檔。
雖然目前沒有出現任何辦法做到這一點通過Info.plist
,作爲第一個應用程序中獲得的設置爲用戶首選的應用程序。用戶必須更改他們的首選應用程序,這可以通過上述API來實現。
相關問題
- 1. iOS應用程序的文件關聯(「打開..」)/ CFBundleDocumentTypes問題
- 2. 覆蓋應用程序文件夾中的文件的問題
- 3. 自定義Mac安裝程序覆蓋/庫/應用程序支持文件
- 4. 使用class_eval覆蓋關聯
- 5. 將文件關聯到應用程序
- 6. 應用程序文件關聯
- 7. 控件覆蓋.net應用程序
- 8. mac如何關閉關機過程中的應用程序?
- 9. Silverlight應用程序中的html覆蓋
- 10. 覆蓋應用程序中的庫buildConfigFields
- 11. 測量代碼覆蓋率通過Java Web應用程序
- 12. 在調用應用程序中覆蓋.Net資源文件
- 13. SVN絕對通過本地文件覆蓋遠程文件
- 14. 無法通過FTP覆蓋Wordpress文件
- 15. 爲mac應用程序獲取0 gcov覆蓋率
- 16. Ruby on Rails的 - 覆蓋關聯ID創建過程
- 17. 覆蓋應用程序的靜態文件?
- 18. Azure應用程序設置不覆蓋我的appsettings.json文件值
- 19. 文件關聯在Mac
- 20. 覆蓋MFC應用程序的LoadString
- 21. 聯繫Android應用程序通過USB
- 22. OS X中的程序文件關聯
- 23. 通過應用程序訪問apk文件通過應用程序
- 24. 覆蓋WPF應用程序中的WebBrowser控件?
- 25. 在Java應用程序中使用文件關聯
- 26. 登錄用戶由loginwindow通過在mac中的應用程序
- 27. 如何覆蓋weblogic應用程序庫?
- 28. 如何覆蓋Robolectric應用程序?
- 29. 應用程序安裝互相覆蓋
- 30. Symfony2 FOSRestBundle覆蓋默認應用程序
您是否最終找到了解決方案?我在這裏得到了完全相同的問題:/ – Uflex 2014-12-16 10:23:44