Question

Users of my application keep running into issues related to other applications declaring a different UTI for the same file extension as my application. I think I can best describe this with an example:

My application supports importing and exporting OPML files. For this to work I import the org.opm.opml UTI in my info.plist. This mostly works fine, but fails if an other application declares a different UTI for the opml file extension. For example com.redlex.opml or com.xwavesoft.cloudoutliner.opml.

Is there something I can do to work around this problem? Can I somehow tell launch services that my application accepts all files with an .opml extension?

Was it helpful?

Solution 2

I solved this issue with the following work around:

  1. I removed the entire LSItemContentTypes entry from the list of CFBundleDocumentTypes
  2. In my NSDocument subclass I use NSString's rangeOfString:: method to look for the @"opml" keyword in the typeName parameter.

This work around was confirmed by a user.

OTHER TIPS

Cloud Outliner updated on the MAS today, and looking at the UTI for .opml files now, the com.xwavesoft.cloudoutliner.opml is now gone and com.redlex.opml is now in its place. Which would be uninteresting, except for the fact that OPML files now open in MindNode without a problem.

I can't find any release notes for Cloud Outliner other than "various fixes and improvements." but it would seem that something changed for the better. So: in my case - the simple answer was "update Cloud Outliner" but I'm not sure this solves the larger problem. I also have Mellel on my system (obviously, right?!) but this doesn't seem to be causing the same issue.

For those watching this thread - the issue presented as MindNode showing greyed-out icons for OPML files in its open dialog. Dragging OPML to the MindNode icon in the dock also produced no results.

Rob

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top