MacdeployQT не копируя плагины
-
27-09-2019 - |
Вопрос
Я разрабатываю приложение на основе QT, и когда я использую MacdeployQT на пачке, плагины QT не копируются в пучок.
Однако, если я бегу во второй раз, они есть. Кроме того, «плагин Icon SVG развернут, если приложение использует модуль QTSVG». Не заполнено - мое приложение использует QTSVG, но плагин IconEngines / * не скопирован.
Я пытался запустить его с -verbose = 3, а последняя пара линий:
Log: Created configuration file: "silverlock.app/Contents/Resources/qt.conf"
Log: This file sets the plugin search path to "silverlock.app/Contents/PlugIns"
Из чего говорит последнее сообщение, то кажется, что он намеревался продолжать бегать, но не - почти как будто это разбилось.
Почему это происходит? MacdeployQT работал для меня раньше без проблем.
С использованием:
- Qt 4.6.
- Qt Creator 2.0
- Леопард 10.5.8.
Решение
Проблема лежит в строках 355-365 Shared.cpp в источнике MACDEPOLDST:
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/"
}
Первое название Framework / Dylib в вашем комплекте, которое имеет «QT» в его названии, принимается для определения пути плагина. Поскольку имя первого основания / Диалиба в моем пакете было «QTsolutions_QTSingLeplippion-2.6» ... Вы получаете изображение. Поэтому я полагаю, что обходной путь - переименовать Диалиб на «QSA-2.6.dylib» или что-то.
В двух словах: убедитесь, что ваши рамки и имена библиотек не имеют «Qt» в них или вы столкнулись с проблемами с MACDEPLOYQT.
Надеюсь, этот ответ может помочь кому-то, имеющую одну и ту же проблему.