我開發了一個保存和加載唯一類型文件的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. Java:通過關聯覆蓋行爲
- 3. 通過我的應用程序關聯
- 4. 覆蓋應用程序文件夾中的文件的問題
- 5. 自定義Mac安裝程序覆蓋/庫/應用程序支持文件
- 6. .net Windows應用程序 - 如何通過文件關聯自動調用程序
- 7. 如何在使用FactoryGirls時覆蓋關聯(通過使用Factory)?
- 8. 使用class_eval覆蓋關聯
- 9. 覆蓋Android應用程序
- 10. 應用程序文件關聯
- 11. 將文件關聯到應用程序
- 12. mac如何關閉關機過程中的應用程序?
- 13. 控件覆蓋.net應用程序
- 14. 覆蓋應用程序中的庫buildConfigFields
- 15. Silverlight應用程序中的html覆蓋
- 16. 測量代碼覆蓋率通過Java Web應用程序
- 17. 通過擴展覆蓋django第三方應用程序模板
- 18. 在調用應用程序中覆蓋.Net資源文件
- 19. 覆蓋ActiveRecord的關聯條件
- 20. 如何使用.env文件覆蓋fastlane的應用程序文件中的值
- 21. S3文件通過PHP從Mac應用程序上傳?
- 22. 如何通過腳本(.sh文件)運行mac應用程序?
- 23. MASM32使用程序集覆蓋文件
- 24. SVN絕對通過本地文件覆蓋遠程文件
- 25. 無法通過FTP覆蓋Wordpress文件
- 26. 爲mac應用程序獲取0 gcov覆蓋率
- 27. 身體覆蓋不通過sass覆蓋與Bootstrap應用
- 28. Rails:覆蓋關聯主鍵
- 29. 通過覆蓋文件更新文件中的一行
- 30. 通過CSS應用透明覆蓋圖
您是否最終找到了解決方案?我在這裏得到了完全相同的問題:/ – Uflex 2014-12-16 10:23:44