+ Reply to Thread
Page 1 of 2 12 LastLast
Results 1 to 20 of 21

Thread: Mac App Store

  1. #1
    Join Date
    Jun 2010
    Posts
    4
    Thanks
    1
    Qt products
    Qt4
    Platforms
    MacOS X Windows

    Default Mac App Store

    Did anyone submit his/her Qt application to Mac App Store? I mean the new Mac App Store for Mac OS X applications (for desktops and macbooks).

    I'm still working on my first Qt application, so I cannot try submitting it myself yet, I need another month or so...

    The reason I'm asking: if Apple accepts Qt applications, I will distribute the Mac version exclusively through Mac App Store, and I will not program my own copy protection and automatic upgrade for the Mac version (App Store will do that). If they reject Qt applications, that's not a big deal, I still will be able to sell my application through different sources, but I will have to program my own copy protection (and trial version), and automatic updates. So I don't know, should I start programming these features, or I can spend my time on other things.

  2. #2
    Join Date
    Aug 2008
    Location
    Algarve, Portugal
    Posts
    269
    Thanks
    21
    Thanked 28 Times in 24 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Symbian S60

    Default Re: Mac App Store

    I'm not a expert in the subject, far from that , but this link says "Cupertino “ported” the same strict rules it applied for iOS devs over to the Mac App Store guidelines".
    So I don't think it's possible to deliver a Qt app to the Apple store
    _______________________________________________
    Math Graphica - scientific calculator with graphs 2D / 3D / 4D, user defined functions, system of equations, formulas and integrals
    Qt Ambassador

  3. #3
    Join Date
    Jan 2011
    Posts
    16
    Thanks
    1
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Mac App Store

    This might be of interest:

    http://www.readwriteweb.com/archives...pp_storep2.php

    However, these are rules which "leaked" out of Apple somewhere, they might not be up to date. But they can serve as basis what the current rules would look like.

    Especially "problematic" is point 2.5: Apps that use non-public APIs will be rejected

    "Public APIs? So everything which is (in C++ speak) declared public: or protected:? So is Qt a non-public API or not?" Go figure! Very sketchy, to say the least.

    A taste of what that could mean for Qt is the following point: 2.24 Apps that use deprecated or optionally installed technologies (e.g., Java, Rosetta) will be rejected

    Now technically Qt is not deprecated - for sure Apple never shipped Qt themselves, so technically it can't be called deprecated by Apple. And it is also never "optionally" installed by Apple, it has to be shipped together with the app anyway (and that is easy).

    So while Java is explicitly ruled out we are left with the very sketchy point 2.5. And after all, Qt also makes use of the "public API" and technically is just another layer between our code and the OS API - just like all the other layers our own applications provides anyway.


    Given the numbers of Qt developers nowadays, and given the fact that Qt really integrates very well into the system (after all, it does not depend on a "runtime environment" like Java does, and the Qt libs are very easy to ship inside the app bundle) makes me hope that "Qt apps will eventually be accepted" - at least when you follow all the other points, especially "make it look/behave like a Mac application"

    And I also hope that some other "major big-mass applications" like Google Earth or Opera (yessss, Qt based go first and clear the path for us

    Anyway, in a few days we'll know more.


    Oh, one more thing... you should quickly abandon your "copy protection", should you really want to distribute your app via iStore:

    2.19 Apps that require license keys or implement their own copy protection will be rejected


  4. #4
    Join Date
    Sep 2009
    Location
    UK
    Posts
    2,447
    Thanks
    6
    Thanked 346 Times in 332 Posts
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Mac App Store

    2.5 simply means that you use only published (public) Mac API functions. MacOS is full of undocumented functions and they don't want you to use any of them, which is fair enough as being undocumented the behavior of those functions could change with any OS update.

    However, it could be argued that by using Qt, you are using a competitor to Apple's own Cocoa UI library.

  5. #5
    Join Date
    Jan 2011
    Posts
    16
    Thanks
    1
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Mac App Store

    Quote Originally Posted by squidge View Post
    2.5 simply means that you use only published (public) Mac API functions. MacOS is full of undocumented functions and they don't want you to use any of them, which is fair enough as being undocumented the behavior of those functions could change with any OS update.
    Totally agreed! And I hope that is exactly the "definition" of "only use public API".

    However, it could be argued that by using Qt, you are using a competitor to Apple's own Cocoa UI library.
    ... and that this "foreign API" would be considered "non-public API" and hence be restricted.

    However we have seen several Qt apps being submitted and solely (and rightfully) been rejected due to wrong file paths being created/written to, such as file being created via QDesktopServices (most probably fixable on an application level) and ~/Library/Preferences/com.trolltech.plist (created by Qt and most probably must be fixed on a Qt level -> patch, new Qt API method which lets the application control where/if to place that file).

    Refer to similar discussions on e.g.

    http://www.qtcentre.org/threads/3529...-Mac-App-Store

    and

    http://stackoverflow.com/questions/4...-mac-app-store

    The later also lists a file like ~/Applications/APPname.app/Contents/Resources/databasename.sqlite, but I think that one is controlled on an application level, that is easily fixable.

    The only real issue so far I think remains with ~/Library/Preferences/com.trolltech.plist, which to my very knowledge cannot be controlled by the Application.

    On Windows I think these entries result in registry entries under HKEY_USERS\...\Software\Trolltech (the equivalent of said com.trolltech.plist file, right?), and store e.g. the known plugin directories etc.). I think also there the application does not have control about the registry entries, but so far there is no MS App Store either


    The bottom line: so far Apple did not seem to complain about the fact that these apps are Qt based. Maybe their test suite did not reach the point of whether that test would complain, because it stopped earlier because of these wrong file paths. But time will show - so far it is looking not too bad

    Cheers, Oliver

  6. #6
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    31,495
    Thanks
    3
    Thanked 4,730 Times in 4,529 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Blog Entries
    4
    Wiki edits
    10

    Default Re: Mac App Store

    Quote Originally Posted by squidge View Post
    However, it could be argued that by using Qt, you are using a competitor to Apple's own Cocoa UI library.
    Qt uses Cocoa behind the scenes (to be exact one of the three Mac ports does). Whether "Cocoa" and "Cocoa UI" is the same, I don't know. I would guess yes (the Aqua widget style probably redirects calls to Cocoa so it depends on Cocoa UI and not competes with it).
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  7. #7
    Join Date
    Aug 2008
    Location
    Algarve, Portugal
    Posts
    269
    Thanks
    21
    Thanked 28 Times in 24 Posts
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Symbian S60

    Default Re: Mac App Store

    I have zero experience in deploying in the App Store, and perhaps I'm being naive by asking this question, but, don't they have some support email where one can openly ask "Do you accept apps developed with Qt ??????"
    Also one has to pay to try to submit the app, or only after the app is accepted ? It would be very frustanting to pay for something that get's rejected in the end.
    _______________________________________________
    Math Graphica - scientific calculator with graphs 2D / 3D / 4D, user defined functions, system of equations, formulas and integrals
    Qt Ambassador

  8. #8
    Join Date
    Jan 2011
    Posts
    7
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: Mac App Store

    I just got my Qt application rejected from the app store due to usage of a non-public API. The call is from Qt itself (using GetNativeWindowFromWindowRef in Carbon.Framework). As my application is using only Qt and no direct calls to Carbon or Cocoa, I am not sure how to proceed - there could be several other non-public APIs used even if I managed to get around this one.

    Jim

  9. #9
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    31,495
    Thanks
    3
    Thanked 4,730 Times in 4,529 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Blog Entries
    4
    Wiki edits
    10

    Default Re: Mac App Store

    Quote Originally Posted by jimaz View Post
    I just got my Qt application rejected from the app store due to usage of a non-public API. The call is from Qt itself (using GetNativeWindowFromWindowRef in Carbon.Framework).
    Try the Cocoa port of Qt. It's the one for 64bit Macs (it shouldn't contain calls to Carbon). The 32 bit is based on Carbon which I think (I may be wrong) is (or soon will be) deprecated by Apple anyway. But probably there will be an equivalent call to Cocoa there

    Here is a link that might be helpful if you don't find anything better: ftp://ftp.qt.nokia.com/qt/source/qt-...urce-4.6.3.dmg
    Last edited by wysota; 11th January 2011 at 19:09.
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  10. #10
    Join Date
    Jan 2011
    Posts
    7
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: Mac App Store

    Thanks wysota, I was actually not aware of a separate Cocoa port. I should have done my homework, I guess Will keep posting updates in this thread if my app gets accepted.

    Thanks again,

    Jim

  11. #11
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    31,495
    Thanks
    3
    Thanked 4,730 Times in 4,529 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Blog Entries
    4
    Wiki edits
    10

    Default Re: Mac App Store

    Is there some online tool you can run your app against to see if it will pass compliance tests for AppStore? It would be cool if there was something like that.
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  12. #12
    Join Date
    Jan 2011
    Posts
    7
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: Mac App Store

    Unfortunately there is no tool to check if the application should pass the AppStore approval process. When submitting an application in XCode, the last step before actual submission is a "Validate" step, but that is only signing the application with the developer key if I understand correctly. I originally assumed this step would check for basic mistakes as missing referenced libraries or usage of private APIs.

    Jim

  13. #13
    Join Date
    Jan 2011
    Posts
    7
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: Mac App Store

    My Qt app now got approved, after following wysota advise to use the Cocoa port
    Thanks again, wysota!

    Jim

  14. #14
    Join Date
    Jan 2006
    Location
    Warsaw, Poland
    Posts
    31,495
    Thanks
    3
    Thanked 4,730 Times in 4,529 Posts
    Qt products
    Qt3 Qt4 Qt5 Qt/Embedded
    Platforms
    Unix/X11 Windows Android Maemo/MeeGo
    Blog Entries
    4
    Wiki edits
    10

    Default Re: Mac App Store

    Nice, congratulations. Maybe you could provide a list of steps you needed to take to have your apps approved so that others might benefit from it? I mean the things you had to do or ones you had to avoid.
    Your biological and technological distinctiveness will be added to our own. Resistance is futile.

    Please ask Qt related questions on the forum and not using private messages or visitor messages.


  15. #15
    Join Date
    Jan 2011
    Posts
    7
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: Mac App Store

    Actually, the only step necessary was to bundle the Cocoa version of Qt instead of the Carbon version. The actual packaging of the application is not really specific to the app store, I basically followed these instructions for XCode packaging: http://doc.trolltech.com/4.7/deployment-mac.html - I bundled the frameworks as described there and made sure I only included the release versions of the QtGui + QtCore).

    Cheers,

    Jim

  16. #16
    Join Date
    Feb 2011
    Posts
    1
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows Maemo/MeeGo

    Default Re: Mac App Store

    Great news!
    Could I see your app in the Mac App store now? I really want to see your qt app.

  17. #17
    Join Date
    Jan 2011
    Posts
    7
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: Mac App Store

    Not sure if I'm allowed to post a link, since it's a commercial app. Admin - feel free to delete the post if I'm breaking any rule.

    http://itunes.apple.com/us/app/event...03026288?mt=12

    It's not a typical app, since the only visible window is the dock icon - and an about dialog

    Unfortunately the current version has a bug, dock menu items don't get triggered - I hope it's because of a bug corrected in Qt 4.7.3. I will try to update it in a few days and see.

    Jim

  18. The following user says thank you to jimaz for this useful post:

    ucntcme (4th March 2011)

  19. #18
    Join Date
    Oct 2010
    Location
    São Paulo
    Posts
    1
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11 Windows

    Default Re: Mac App Store

    Jim,

    I had the same problem that you had with the dock manu items. Did you ever found out if the bug was fixed on Qt?

    Tks
    Visit my blog about Qt and C++ programming in general: http://raphaelcruzeiro.com

  20. #19
    Join Date
    Jan 2011
    Posts
    7
    Thanked 1 Time in 1 Post
    Qt products
    Qt4
    Platforms
    MacOS X Unix/X11

    Default Re: Mac App Store

    Raphael - I have not checked it, but I should be able to test this soon.Right now I have some deployment issues with the new XCode 4 that I'd like to resolve before upgrading to a more recent Qt.

    Regards,

    Jim

  21. #20
    Join Date
    Mar 2009
    Posts
    33
    Thanks
    11
    Qt products
    Qt4
    Platforms
    Windows

    Default Re: Mac App Store

    Not sure if open a new thread for this question, let's start here specifically addressed to Jim that may have experience about it.

    In the documentation about the App Store I see they refer to implementing the "app purchase api". Did you have problems or too much work with that? I ask in therms of having to call the api in Objective-C format or other things that may be complex for a Qt developer that didn't scratch the surface of native Mac developement.

    Thanks!
    Juan

    Edit: Reading deeper I see that the app purchase api apparently refers to the cases of selling goods rather than software apps so maybe my question doesn't apply, anyway, in a more broad meaning, did you have to dig into non-Qt technologies to make your app compatible with the appstore?
    Last edited by thru; 6th October 2011 at 13:35.

+ Reply to Thread

Similar Threads

  1. Qt Apps banned from Mac App Store?
    By jfk in forum Qt Programming
    Replies: 130
    Last Post: 24th August 2011, 17:10
  2. Query - how to store ?
    By damodharan in forum Qt Programming
    Replies: 2
    Last Post: 31st May 2010, 13:59
  3. Store the filename of QIcon
    By Nithya in forum Qt Programming
    Replies: 1
    Last Post: 28th August 2008, 17:54
  4. what is free store in C++ memory?
    By Masih in forum General Programming
    Replies: 6
    Last Post: 2nd July 2007, 23:25
  5. Is it possible to store pointers in a database ?
    By probine in forum General Programming
    Replies: 8
    Last Post: 5th April 2006, 22:28

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts