macdeployqt 不复制QtWebView插件

macdeployqt does not copy the QtWebView plugin

我找不到通知 macdeployqt 我需要 QT_ROOT/qml/QtWebView/libdeclarative_webview.dylib 的方法复制到应用程序包中。这是在 QML 中使用本机 QtWebView 所必需的(配置 QT_WEBVIEW_PLUGIN=native)。有没有办法避免手动复制并改为依赖 macdeployqt?

请注意,库 QT_ROOT/plugins/webview/libqtwebview_darwin.dylib 已被正确识别并包含在包中。

项目使用cmake构建,Qt版本为5.15.2。基本步骤如下所示。

find_package(Qt5 REQUIRED COMPONENTS ... WebView)

target_link_libraries(${binary} ... Qt5::WebView)

execute_process(
    COMMAND ${qt_root}/bin/macdeployqt
    ${CMAKE_INSTALL_PREFIX}/bin/my_app_bundle.app
    -qmldir=${qt_root}/qml
)

问题在于滥用 qmldir 和 qmlimport。正确的调用是

execute_process(
    COMMAND ${qt_root}/bin/macdeployqt
    ${CMAKE_INSTALL_PREFIX}/bin/my_app_bundle.app
    -qmldir=${CMAKE_CURRENT_SOURCE_DIR}/quick_ui
    -qmlimport=${qt_root}/qml
)