Sandbox app for the Mac App Store with Qt 5.8 and QtWebEngineProcess
-
@SGaist Yes.
So, my app was rejected using Qt 5.6.2 because of the following:
Your app uses or references the following non-public API(s): framework: '/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit' : NSAccessibilityUnregisterUniqueIdForUIElement : _NSAppendToKillRing : _NSDrawCarbonThemeBezel : _NSDrawCarbonThemeListBox : _NSInitializeKillRing : _NSNewKillRingSequence : _NSPrependToKillRing : _NSSetKillRingToYankedState : _NSYankFromKillRing framework: '/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices' : CGSSetDenyWindowServerConnections : CGSShutdownServerConnections : CTFontCopyDefaultCascadeList The use of non-public APIs is not permitted on the App Store as it can lead to a poor user experience should these APIs change.
Which looks like this is addressed by this: https://doc.qt.io/qt-5/qtwebengine-platform-notes.html#mac-app-store-compatibility
So I tried Qt 5.7 again and for whatever reason it didn't crash this time! However, it has the same exact problem I was seeing with Qt 5.8.
I have built and rebuilt and rebuilt
QtWebEngine
and yet I still cannot get it to work. Is there anyway to verify that my build ofQtWebEngine
is actually applying theuse_appstore_compliant_code
flag?It seems like this has been a problem for a while: https://bugreports.qt.io/browse/QTBUG-41611
-
The symbol problem is pretty surprising, are you sure you are using your build of the QtWebEngine module that is app store compliant ?
-
@SGaist said in Sandbox app for the Mac App Store with Qt 5.8 and QtWebEngineProcess:
The symbol problem is pretty surprising, are you sure you are using your build of the QtWebEngine module that is app store compliant ?
I was using 5.6.2. Should I build 5.6.2 QtWebEngine with the
use_appstore_compliant_code
? -
@SGaist I'm back to trying Qt 5.8 again. I've gone so far as to manually copy over QtWebEngineCore.framework that is in my build folder and I'm getting the same results:
4/26/17 20:33:04.000 kernel[0]: Sandbox: QtWebEngineProce(86853) deny(1) mach-lookup org.chromium.Chromium.rohitfork.86852 4/26/17 20:33:04.019 QtWebEngineProcess[86853]: [0426/203304:ERROR:mach_port_broker.mm(43)] bootstrap_look_up: Permission denied (1100) 4/26/17 20:33:04.000 kernel[0]: Sandbox: QtWebEngineProce(86854) deny(1) mach-lookup org.chromium.Chromium.rohitfork.86852 4/26/17 20:33:04.020 QtWebEngineProcess[86854]: [0426/203304:ERROR:mach_port_broker.mm(43)] bootstrap_look_up: Permission denied (1100) 4/26/17 20:33:04.000 kernel[0]: Sandbox: QtWebEngineProce(86854) deny(1) forbidden-sandbox-reinit 4/26/17 20:33:04.000 kernel[0]: Sandbox: QtWebEngineProce(86853) deny(1) forbidden-sandbox-reinit
Again, is there anyway by inspecting the
QtWebEngineCore.framework
to make sure is being built with the app store compliant code? -
Just built
QtWebEngine
again on 5.8 and made sure to use theQtWebEngineCore.framework
that just got built. No luck.I see the
use_appstore_compliant_code
config item was added in Qt 5.7. Guess I'll try building that and see if I have any luck. Heck, I may even try 5.9 at this point just to see.Seriously, has anyone successfully published an app that uses
QtWebEngine
to the MAS? -
Built 5.7 with
use_appstore_compliant_code
and am getting the same errors from my app:4/27/17 07:10:53.000 kernel[0]: Sandbox: QtWebEngineProce(20764) deny(1) mach-lookup org.chromium.Chromium.rohitfork.20763 4/27/17 07:10:53.000 kernel[0]: Sandbox: QtWebEngineProce(20765) deny(1) mach-lookup org.chromium.Chromium.rohitfork.20763 4/27/17 07:10:53.627 QtWebEngineProcess[20764]: [0427/071053:ERROR:mach_broker_mac.mm(52)] bootstrap_look_up: Permission denied (1100) 4/27/17 07:10:53.627 QtWebEngineProcess[20765]: [0427/071053:ERROR:mach_broker_mac.mm(52)] bootstrap_look_up: Permission denied (1100) 4/27/17 07:10:53.000 kernel[0]: Sandbox: QtWebEngineProce(20764) deny(1) forbidden-sandbox-reinit
Are there any apps on the MAS that use Qt 5.x and
QtWebEngine
? -
@SGaist Thank you for trying to help. I discovered that link a few days ago while researching this problem. It did lead me to add the
com.apple.security.application-groups
entitlement to my app's entitlements file but the problem persists.I am beginning to wonder if this is a problem with
QtWebEngineProcess
. I have posted this issue to the QtWebEngine mailing list but so far there has been no response.I'm at a loss. :(
-
Do you mean from the QtWebView module ?
-
@SGaist Yes. That does not use
QtWebEngineProcess
correct?What I need is for a link in the HTML of the control to invoke some C++. I'm able to do this in
QtWebEngine
withQWebChannel
. From what I've read,QtWebView
doesn't really support that but maybe it's possible? -
No it doesn't use it.
AFAIK, QtWebView uses the platform native web views so it should be able to run with the QWebChanne module. Note that I haven't personally tested that combo but it's well worth a shot since it will likely make your application more lightweight.
-
@Wolosocu said in Sandbox app for the Mac App Store with Qt 5.8 and QtWebEngineProcess:
QtWebEngineProce
@Wolosocu did you manage to overcome this issue? If so how ?