PDA

View Full Version : Qt Mac App Store application rejected



ahmdsd_ostora
26th May 2012, 15:12
My new Qt application submission has been rejected from Mac App Store. The reason is:

Binary Rejected May 23, 2012 07:42 PM
Reasons for Rejection:
2.5 Apps that use non-public APIs will be rejected
2.30 Apps that do not comply with the Mac OS X File System documentation will be rejected
May 23, 2012 07:42 PM. From Apple.
2.5

The use of non-public APIs can lead to a poor user experience should these APIs change in the future, and is therefore not permitted. The following non-public APIs are included in your application:

: NSAccessibilityCreateAXUIElementRef
: NSAccessibilityHandleFocusChanged
: NSAccessibilityUnregisterUniqueIdForUIElement
: NSMouseMovedNotification
: OBJC_IVAR_$_NSCGSContext._cgsContext
: _NSDrawCarbonThemeBezel
: _NSDrawCarbonThemeListBox
: _NSPopUpCarbonMenu3
: _NXShowKeyAndMain



How can I solve this issue?

ChrisW67
27th May 2012, 03:27
Don't submit your application to Apple and save yourself 30% on each sale ;)

All of these API calls originate in QtWebkit. Find a way to avoid these and submit a patch to QtWebkit (http://trac.webkit.org/wiki/QtWebKit) but make sure that they are not already fixed or cannot be avoided by building/bundling Qt without Carbon i.e. with Cocoa. I have a suspicion, perhaps unfounded, that Apple also insist on all web-browser type functionality using the system's webkit libraries though that may be only their tablet/phones.

Since they don't tell you what is not compliant with the Mac OS X File System documentation it is hard to know what to fix. There's some stuff about a "misplaced" plist file in this long thread: not sure if this still applies to Qt 4.8.2.

There are some other suggestions in the other place you asked (http://stackoverflow.com/questions/10766940/qt-mac-app-store-application-rejected)

ahmdsd_ostora
27th May 2012, 16:13
Thank you very much, Chris, now I have 2 questions:
1- How to build and bundle Qt without Carbon?
2- How to scan my distributed .app file for private API's usage?

ChrisW67
28th May 2012, 02:21
1- How to build and bundle Qt without Carbon?
You configure Qt with the "-cocoa" option and build it on OS X 10.5 or later.
Bundling an application is unchanged.

2- How to scan my distributed .app file for private API's usage?
I don't know how Apple do it or the OS X-ish way to do it. I am surprised that Apple do not publish a tool to test this stuff, but then I guess they could not arbitrarily move the walls of the walled garden if they di that. I would start by running "strings" over the QtWebkit library, which seemed to be the offender.

ahmdsd_ostora
28th May 2012, 12:33
I have news, I found information tell that any QtWebkit (or any 3rd party web kit port) will be rejected from App Store, Is this true?

ChrisW67
29th May 2012, 00:07
Possibly, see my first reply.

ahmdsd_ostora
30th May 2012, 15:08
Hi,Chris
I have removed QtWebKit totally from my app. Now I have the other problem with writing to ˜/Library/Preferences/com.mycompany.myapp

2.30

The application accesses the following location(s):

'~/Library/Preferences/com.nourayn.AlMosaly.plist'

The application may be

* creating files
* writing files
* opening files for Read/Write access (instead of Read-Only access)

in the above location(s).

How to fix this problem?