macdeployqt ne pas copier plugins
-
27-09-2019 - |
Question
Je développe une application Qt et quand je l'utilise macdeployqt sur le paquet, les plug-ins de Qt ne sont pas copiés dans le paquet.
Cependant, si je lance une deuxième fois, ils sont. En outre, « Le plugin icône svg est déployée si l'application utilise le module QtSvg. » n'est pas fullfilled -. mon application utilise-t-QtSvg mais le plug-in iconengines / * n'est pas copié
Je l'ai essayé avec verbose = en cours d'exécution 3, et les dernières lignes de couple sont:
Log: Created configuration file: "silverlock.app/Contents/Resources/qt.conf"
Log: This file sets the plugin search path to "silverlock.app/Contents/PlugIns"
D'après ce que le dernier message dit, ce genre de semble qu'il avait l'intention de continuer à fonctionner, mais il n'a pas -. Comme s'il est écrasé
Pourquoi est-ce qui se passe? macdeployqt a travaillé pour moi avant sans problème.
Utilisation:
- Qt 4.6
- Qt Creator 2.0
- Leopard 10.5.8
La solution
se trouve le problème à 355-365 lignes de shared.cpp dans la source 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/"
}
Le premier nom cadre / dylib dans votre paquet qui a « Qt » dans son nom est pris pour déterminer le chemin du plugin. Depuis le premier nom cadre / dylib dans mon paquet était « QtSolutions_QtSingleApplication-2.6 » ... vous obtenez l'image. Donc, je suppose que la solution consiste à renommer le dylib à « QSA-2.6.dylib » ou quelque chose.
En bref: assurez-vous que votre cadre et les bibliothèques n'ont pas « Qt » en eux ou vous rencontrerez des problèmes avec macdeployqt
.Espérons que cette réponse peut aider quelqu'un ayant le même problème.