Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-34810

Error with codesign on a QtQuick 2 based application

    XMLWordPrintable

Details

    • Bug
    • Resolution: Invalid
    • P1: Critical
    • None
    • 5.1.1, 5.6.1
    • Build System
    • macOS 10.9, 10.10

    Description

      I am trying to Sign my QtQuick application and I am having problems.
      I've noticed that the rules for signing have changed on Maverics (OS X 10.9). We need to sign almost every file in the AppBundle.

      When I try to sign the executable, I'm having the following error:

      codesign --force --verify --verbose --sign "Developer ID Application: XXXX" MyApp.app/Contents/MacOS/main

      MyApp.app/Contents/MacOS/main: replacing existing signature
      MyApp.app/Contents/MacOS/main: bundle format unrecognized, invalid, or unsuitable
      In subcomponent: MyApp.app/Contents/MacOS/QtQuick/Particles.2

      The problematic directories are:
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/
      MyApp.app/Contents/MacOS/QtQuick/Window.2/
      MyApp.app/Contents/MacOS/QtQuick.2/

      When I try to sign one of the problematic directory and all its contents I am getting this:

      For the content there is no problem:

      codesign --force --verify --verbose --sign "Developer ID Application: XXXX" MyApp.app/Contents/MacOS/QtQuick/Particles.2/libparticlesplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/libparticlesplugin.dylib: replacing existing signature
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/libparticlesplugin.dylib: signed Mach-O thin (x86_64) [libparticlesplugin]

      codesign --force --verify --verbose --sign "Developer ID Application: XXXX" MyApp.app/Contents/MacOS/QtQuick/Particles.2/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/plugins.qmltypes: replacing existing signature
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/plugins.qmltypes: signed generic [plugins]

      codesign --force --verify --verbose --sign "Developer ID Application: XXXX" MyApp.app/Contents/MacOS/QtQuick/Particles.2/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/qmldir: replacing existing signature
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/qmldir: signed generic [qmldir]

      But when trying to sign the entire directory, I'm getting this error

      codesign --force --verify --verbose --sign "Developer ID Application: XXXX" MyApp.app/Contents/MacOS/QtQuick/Particles.2
      MyApp.app/Contents/MacOS/QtQuick/Particles.2: bundle format unrecognized, invalid, or unsuitable

      I think it may be a problem with the directory name like "Particles.2".

      If I remove the Particles.2, the error disappears and I can sign the entire AppBundle.
      If I rename Particles.2 to Particles2, the error disappears and I can sign the entire AppBundle.
      The problem is that I can't remove or rename these directories, I need them as they are now, without it my QtQuick App stops working

      Here ir my simplified AppBundle directory structure:

      MyApp.app/Contents/Frameworks/...
      MyApp.app/Contents/Info.plist
      MyApp.app/Contents/MacOS/main
      MyApp.app/Contents/MacOS/QtGraphicalEffects/Blend.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/BrightnessContrast.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/Colorize.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/ColorOverlay.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/ConicalGradient.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/Desaturate.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/DirectionalBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/Displace.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/DropShadow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/FastBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/GammaAdjust.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/GaussianBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/Glow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/HueSaturation.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/InnerShadow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/LevelAdjust.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/LinearGradient.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/MaskedBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/OpacityMask.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/FastGlow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/FastInnerShadow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/FastMaskedBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/GaussianDirectionalBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/GaussianGlow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/GaussianInnerShadow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/GaussianMaskedBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/private/SourceProxy.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/qmldir
      MyApp.app/Contents/MacOS/QtGraphicalEffects/RadialBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/RadialGradient.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/RectangularGlow.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/RecursiveBlur.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/ThresholdMask.qml
      MyApp.app/Contents/MacOS/QtGraphicalEffects/ZoomBlur.qml
      MyApp.app/Contents/MacOS/QtMultimedia/libdeclarative_multimedia.dylib
      MyApp.app/Contents/MacOS/QtMultimedia/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtMultimedia/qmldir
      MyApp.app/Contents/MacOS/QtMultimedia/Video.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/ApplicationWindow.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Button.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/CheckBox.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/ComboBox.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/GroupBox.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Label.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/libqtquickcontrolsplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/Controls/Menu.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/MenuBar.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/AbstractCheckable.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/BasicButton.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/Control.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/FocusFrame.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/libqtquickcontrolsprivateplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/ModalPopupBehavior.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/ScrollBar.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/ScrollViewHelper.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/StackView.js
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/StackViewSlideDelegate.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/style.js
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/Style.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Private/TabBar.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/ProgressBar.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Controls/RadioButton.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/ScrollView.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Slider.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/SpinBox.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/SplitView.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/StackView.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/StackViewDelegate.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/StackViewTransition.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/StatusBar.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/ButtonStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/CheckBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/ComboBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/FocusFrameStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/GroupBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-down.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-down@2x.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-left.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-left@2x.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-right.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-right@2x.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-up.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/arrow-up@2x.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/button.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/button_down.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/editbox.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/focusframe.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/groupbox.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/header.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/progress-indeterminate.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/scrollbar-handle-horizontal.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/scrollbar-handle-vertical.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/tab.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/images/tab_selected.png
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/MenuBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/MenuStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/ProgressBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/RadioButtonStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/ScrollViewStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/SliderStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/SpinBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/StatusBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/TableViewStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/TabViewStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/TextFieldStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/ToolBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Base/ToolButtonStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/ButtonStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/CheckBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/ComboBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/FocusFrameStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/GroupBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/MenuBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/MenuStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/ProgressBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/RadioButtonStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/ScrollViewStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/SliderStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/SpinBoxStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/StatusBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/TableViewStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/TabViewStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/TextFieldStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/ToolBarStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/Desktop/ToolButtonStyle.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/Styles/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Controls/Tab.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/TableView.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/TableViewColumn.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/TabView.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/TextArea.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/TextField.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/ToolBar.qml
      MyApp.app/Contents/MacOS/QtQuick/Controls/ToolButton.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/DefaultColorDialog.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/DefaultFileDialog.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/checkers.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/copy.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/crosshairs.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/folder.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/slider_handle.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/sunken_frame.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/up.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/images/window_border.png
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/libdialogplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/qml/Button.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/qml/ColorSlider.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/qml/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/qml/TextField.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/WidgetColorDialog.qml
      MyApp.app/Contents/MacOS/QtQuick/Dialogs/WidgetFileDialog.qml
      MyApp.app/Contents/MacOS/QtQuick/Layouts/libqquicklayoutsplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/Layouts/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/Layouts/qmldir
      MyApp.app/Contents/MacOS/QtQuick/LocalStorage/libqmllocalstorageplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/LocalStorage/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/LocalStorage/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/libparticlesplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/Particles.2/qmldir
      MyApp.app/Contents/MacOS/QtQuick/PrivateWidgets/libwidgetsplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/PrivateWidgets/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/PrivateWidgets/qmldir
      MyApp.app/Contents/MacOS/QtQuick/Window.2/libwindowplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/Window.2/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/Window.2/qmldir
      MyApp.app/Contents/MacOS/QtQuick/XmlListModel/libqmlxmllistmodelplugin.dylib
      MyApp.app/Contents/MacOS/QtQuick/XmlListModel/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick/XmlListModel/qmldir
      MyApp.app/Contents/MacOS/QtQuick.2/libqtquick2plugin.dylib
      MyApp.app/Contents/MacOS/QtQuick.2/plugins.qmltypes
      MyApp.app/Contents/MacOS/QtQuick.2/qmldir
      MyApp.app/Contents/PkgInfo
      MyApp.app/Contents/PlugIns/...
      MyApp.app/Contents/Resources/...

      I reported to Apple in this thread.
      https://devforums.apple.com/message/917157

      I suspect that Qt directories are violating some Apple Signing rule. I don't know about these rules I want Apple comfirms what is going on.

      Is there any possibility to change de the directory names of QtQuick?

      Thanks and Regards,
      Fernando Pelliccioni

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            jakepetroules Jake Petroules (DO NOT ASSIGN ISSUES)
            fpelliccioni Fernando Pelliccioni
            Votes:
            4 Vote for this issue
            Watchers:
            12 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes