我开发了一个保存和加载唯一类型文件的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