Pergunta

Estou desenvolvendo um aplicativo baseado em QT e, quando uso o MacDeployqt no pacote, os plugins QT não são copiados para o pacote.

No entanto, se eu executar uma segunda vez, eles são. Além disso, "o plug -in de ícone SVG será implantado se o aplicativo usar o módulo QTSVG". não é preenchido - meu aplicativo usa QTSVG, mas o plug -in iconengines/* não é copiado.

Eu tentei executá -lo com -verbose = 3, e as últimas linhas são:

Log: Created configuration file: "silverlock.app/Contents/Resources/qt.conf" 
Log: This file sets the plugin search path to "silverlock.app/Contents/PlugIns" 

Pelo que a última mensagem diz, parece que ela pretendia continuar correndo, mas não o fez - quase como se caiu.

Por que isso está acontecendo? O MacDeployQT já trabalhou para mim antes, sem problemas.

Usando:

  • Qt 4.6
  • QT Creator 2.0
  • Leopardo 10.5.8
Foi útil?

Solução

O problema está nas linhas 355-365 de compartilhamento.cpp na fonte MacDeployQT:

while (frameworks.isEmpty() == false) {
    const FrameworkInfo framework = frameworks.takeFirst();
    copiedFrameworks.append(framework.frameworkName);

    // Get the qt path from one of the Qt frameworks;
    if (deploymenInfo.qtPath.isNull() && framework.frameworkName.contains("Qt") 
        && framework.frameworkDirectory.contains("/lib"))
    {
            deploymenInfo.qtPath = framework.frameworkDirectory;
            deploymenInfo.qtPath.chop(5); // remove "/lib/"
    }

O primeiro nome da estrutura/dylib em seu pacote que possui "qt" em seu nome é levado para determinar o caminho do plug -in. Como o primeiro nome da estrutura/dylib no meu pacote foi "QTSOLUTIONS_QTSINGLEAPPLICATION-2.6" ... você obtém a foto. Portanto, suponho que uma solução alternativa seja renomear o Dylib para "qsa-2.6.dylib" ou algo assim.

Em poucas palavras: verifique se a estrutura e os nomes de bibliotecas não têm "qt" neles ou você terá problemas com o MacDeployQT.

Espero que essa resposta possa ajudar alguém a ter o mesmo problema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top