Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Sandbox app for the Mac App Store with Qt 5.8 and QtWebEngineProcess
Forum Update on Monday, May 27th 2025

Sandbox app for the Mac App Store with Qt 5.8 and QtWebEngineProcess

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
34 Posts 3 Posters 15.0k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #12

    There's no need to configure Qt, you can use the qmake from your pre-built package if you'd rather use that one.

    macdeployqt has two options that will be of interest:

    • codesign=<ident> : Run codesign with the given identity on all executables
    • appstore-compliant: Skip deployment of components that use private API

    On a side, you're likely in possession of a multi-core machine, to speed things up when building you can do make -jX where X is (2 * number_fo_core) + 1,

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    W 1 Reply Last reply
    0
    • SGaistS SGaist

      There's no need to configure Qt, you can use the qmake from your pre-built package if you'd rather use that one.

      macdeployqt has two options that will be of interest:

      • codesign=<ident> : Run codesign with the given identity on all executables
      • appstore-compliant: Skip deployment of components that use private API

      On a side, you're likely in possession of a multi-core machine, to speed things up when building you can do make -jX where X is (2 * number_fo_core) + 1,

      W Offline
      W Offline
      Wolosocu
      wrote on last edited by Wolosocu
      #13

      @SGaist So I should use macdeployqt to sign the bundle instead of doing it manually? I will try that.

      Also, will QtWebEngineProcess.app still be included in the version of QtWebEngineCore built with the use_appstore_compliant_code?

      1 Reply Last reply
      0
      • W Offline
        W Offline
        Wolosocu
        wrote on last edited by
        #14

        And if I'm using macdeployqt to sign the bundle, then how do I specify the entitlements file?

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by SGaist
          #15

          The switch doesn't remove the build of the helper application, it disable some code that is using APIs not authorised in App Store applications.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          W 2 Replies Last reply
          0
          • SGaistS SGaist

            The switch doesn't remove the build of the helper application, it disable some code that is using APIs not authorised in App Store applications.

            W Offline
            W Offline
            Wolosocu
            wrote on last edited by
            #16

            @SGaist Thank you.

            I still do not understand how using macdeployqt to sign the bundle will apply an entitlements file for sandboxing, though.

            1 Reply Last reply
            0
            • W Offline
              W Offline
              Wolosocu
              wrote on last edited by Wolosocu
              #17

              I am still unable to get this to work. I am seeing a new error on Console, though:

              4/23/17 17:20:31.148 QtWebEngineProcess[2551]: [0423/172031:ERROR:mach_port_broker.mm(43)] bootstrap_look_up: Permission denied (1100)

              I have three steps I am toying with:

              1. Run macdeployqt with -codesign as suggested.
              2. Manually codesign QtWebProcessEngine.app, with the entitlements file from above.
              3. Manually codesign MyApp.app bundle, with my app's entitlements file.

              I have tried various combinations, such as just #1, or #1 and #3. I've tried switching the order of #2 and #3. I've even tried signing QtWebProcessEngine.app with my bundle identifier.

              I am running out of ideas. Please help!

              1 Reply Last reply
              0
              • SGaistS SGaist

                The switch doesn't remove the build of the helper application, it disable some code that is using APIs not authorised in App Store applications.

                W Offline
                W Offline
                Wolosocu
                wrote on last edited by
                #18

                @SGaist said in Sandbox app for the Mac App Store with Qt 5.8 and QtWebEngineProcess:

                The switch doesn't remove the build of the helper application, it disable some code that is using APIs not authorised in App Store applications.

                Do you know if these API were present in 5.7? My next thought is to try this with 5.7 since I am having so many problems with 5.8.

                1 Reply Last reply
                0
                • W Offline
                  W Offline
                  Wolosocu
                  wrote on last edited by Wolosocu
                  #19

                  I was finally able to get my app to run in sandbox mode with Qt 5.6.2. I have not tried 5.7 yet, but I did have to reduce the version of QtQuick I was using from 2.7 to 2.6. Luckily I am not using any 2.7 specific features.

                  I was also able to get my app past the Application Loader portion of the app submission. It hasn't been approved yet but we'll see.

                  I wanted to mention a few things for anyone else that might have a problem with this.

                  1. macdeployqt's -codesign option did NOT work. The only way I was able to sign my app correctly was to write a script that manually walked through my app bundle and called codesign on every binary with the entitlements I wanted/needed.

                  2. macdeployqt also seems to create a lot of *.dSYM files. This is something I noticed in with 5.8 as well and Apple's Application Loader will reject these. I didn't pay much attention to the error but I just made sure my packaging script deleted them (before signing).

                  3. QtWebProcessEngine.app 's Info.plist file needs to be changed before you sign it. The CFBundleIdentifier needs to match that of your signature.

                  Like I said, my app has only passed Application Loader's loading process. I've had problems in the past with Qt and the App Store system (see http://stackoverflow.com/questions/25694066/submitting-qt-5-3-app-for-review-on-mac-app-store) before I could even submit the app for review, so I'm skeptical that I'm out of the woods yet.

                  I'll keep this thread updated.

                  1 Reply Last reply
                  0
                  • W Offline
                    W Offline
                    Wolosocu
                    wrote on last edited by
                    #20

                    Attempting Qt 5.7.1 brought its own problem. Namely that on startup the application gives the error:

                    This application failed to start because it could not find or load the Qt platform plugin "cocoa"
                    in "".
                    
                    Available platform plugins are: cocoa.
                    
                    Reinstalling the application may fix this problem.
                    Abort trap: 6
                    

                    I did a little research and tried a couple minor things but nothing worked.

                    Meanwhile my app was rejected because of an unused sandbox permission. So I've corrected that and resubmitted a new build still using Qt 5.6.2.

                    Really wish I had been able to get 5.8 to work or even 5.7.

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #21

                      That strange, do you have a qt.conf file in your application bundle ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      W 1 Reply Last reply
                      0
                      • SGaistS SGaist

                        That strange, do you have a qt.conf file in your application bundle ?

                        W Offline
                        W Offline
                        Wolosocu
                        wrote on last edited by Wolosocu
                        #22

                        @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 of QtWebEngine is actually applying the use_appstore_compliant_code flag?

                        It seems like this has been a problem for a while: https://bugreports.qt.io/browse/QTBUG-41611

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #23

                          The symbol problem is pretty surprising, are you sure you are using your build of the QtWebEngine module that is app store compliant ?

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          W 2 Replies Last reply
                          0
                          • SGaistS SGaist

                            The symbol problem is pretty surprising, are you sure you are using your build of the QtWebEngine module that is app store compliant ?

                            W Offline
                            W Offline
                            Wolosocu
                            wrote on last edited by Wolosocu
                            #24

                            @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?

                            1 Reply Last reply
                            0
                            • SGaistS SGaist

                              The symbol problem is pretty surprising, are you sure you are using your build of the QtWebEngine module that is app store compliant ?

                              W Offline
                              W Offline
                              Wolosocu
                              wrote on last edited by
                              #25

                              @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?

                              1 Reply Last reply
                              0
                              • W Offline
                                W Offline
                                Wolosocu
                                wrote on last edited by Wolosocu
                                #26

                                Just built QtWebEngine again on 5.8 and made sure to use the QtWebEngineCore.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?

                                W 1 Reply Last reply
                                0
                                • W Wolosocu

                                  Just built QtWebEngine again on 5.8 and made sure to use the QtWebEngineCore.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?

                                  W Offline
                                  W Offline
                                  Wolosocu
                                  wrote on last edited by Wolosocu
                                  #27

                                  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?

                                  1 Reply Last reply
                                  0
                                  • SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #28

                                    That I don't know.

                                    This thread might link to some clues that could help untangle your situation.

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    W 1 Reply Last reply
                                    0
                                    • SGaistS SGaist

                                      That I don't know.

                                      This thread might link to some clues that could help untangle your situation.

                                      W Offline
                                      W Offline
                                      Wolosocu
                                      wrote on last edited by
                                      #29

                                      @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. :(

                                      1 Reply Last reply
                                      0
                                      • W Offline
                                        W Offline
                                        Wolosocu
                                        wrote on last edited by Wolosocu
                                        #30

                                        As an alternative, is it possible to invoke C++ from a QtWebView? At this point I'm thinking of abandoning QtWebEngine altogether, though I would really like to avoid that.

                                        1 Reply Last reply
                                        0
                                        • SGaistS Offline
                                          SGaistS Offline
                                          SGaist
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #31

                                          Do you mean from the QtWebView module ?

                                          Interested in AI ? www.idiap.ch
                                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                          W 1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved