1) Hmmm, I am not sure here. According to Aron (http://www.qtcentre.org/threads/35292-Qt-Apps-banned-from-Mac-App-Store?p=172964#post172964) :
"They need you to create the directory not like
~/Library/Application Support/Company Name/Product Name
~/Library/Application Support/bundleId (com.company.App)"
So in the given example "bundleId" would be the "CFBundleIdentifier" in the Info.plist, which is "org.mysoft.MacStoreApp" (note that qmake replaces @EXECUTABLE@ with the value of $$
during deployment - nice).
So in the given example it should probably be
~/Library/Application Support/org.mysoft.MacStoreApp/ and
But someone definitively needs to confirm this! I am currently not using a Mac, so I can't verify right now what other applications write into Application Support and Caches directories. And maybe the requirement "Application Support/[CFBundleIdentifier]" (same for Cache) is also specific for the Mac Store?
Also Aron pointed out that if an application is using localised organisation names (or even domains, such as mycompany.tv vs mycompany.com etc.) you run into trouble if these values would not match with the CFBundleIdentifier values. But this is off course solvable on an application basis
2) Not sure to which "documentation" you are referring to here. But the application settings (e.g. ~/Library/Preferences/com.twitter.twitter-mac.plist) are definitively at the correct place, as long as "com.twitter.twitter-mac" would match with the CFBundleIdentifier value (which must apparently also match with the organisation/application names registered with the App Store).
In the given example: ~/Library/Preferences/org.mysoft.Star Runner.plist is definitively good (would be accepted into the App Store) if
a) CFBundleIdentifier is also set to org.mysoft.Star Runner
b) We would register our application under the domain "mysoft.org" and app name "Star Runner" with the App Store (my current understanding of the App Store)
So the suggestion was - if possible - to use the CFBundleIdentifier. This value has to be set for App Store applications anyway. If this value was not set (for "normal Mac Qt applications") the usual "organization domain" and "application name" (as set via QCoreApplication by the application) could be used as fall-back. This would make point a) fail-proof.
Again, this would be just the "sugar on top" of the solution when introducing a "Mac Store compatible flag/mode". The current behaviour of Qt is absolutely correct when it comes to application settings and the developer takes care of point a) and b) (the later point off course totally outside of the control of Qt
3) Correct. And I think there are not many "valid locations" (according to the Apple Store "file path rules - which I unfortunatelly don't have access myself, but what I read elsewhere), except the application's own settings file (basically what the patch provided by Aron does) - or not write it at all (not sure what that would imply performance-wise).
Note again that the "file path pattern" ~/Library/Preferences/[Bundle Id] is not the problem here: The problem is really the "Bundle Id" itself, namely "com.trolltech", which does not match with any value within the application's Info.plist file! And at least as of now Apple is very strict with regards to what an App Store application is allowed to write.
On another note, I noticed that on my Mac when deleting ~/Preferences/Library/com.trolltech.plist and starting the example application this file is not re-generated (but when starting another Qt application of mine it is). So I think the "trigger" here is something like really accessing the plugins, e.g. trying to display a JPEG. I will extend the example and also enhance it with the suggestions given by Aron ("add a category" to Info.plist, compile with "DWARF" settings).