MacDeployqt لا نسخ الإضافات
-
27-09-2019 - |
سؤال
أقوم بتطوير تطبيق قائم على QT وعندما أستخدم MacDeployqt على الحزمة ، لا يتم نسخ المكونات الإضافية QT إلى الحزمة.
ومع ذلك ، إذا قمت بتشغيله للمرة الثانية ، فهي كذلك. بالإضافة إلى ذلك ، "يتم نشر البرنامج المساعد SVG Icon إذا كان التطبيق يستخدم وحدة QTSVG." غير ممتلئ - لا يستخدم طلبي QTSVG ولكن لم يتم نسخ المكون الإضافي/المساعد.
حاولت تشغيله باستخدام -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 في مصدر 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/"
}
يتم أخذ الاسم الأول الإطار/dylib في الحزمة التي تحتوي على "QT" باسمها لتحديد مسار البرنامج المساعد. نظرًا لأن اسم الإطار الأول/dylib في حزمة بلدي كان "Qtsolutions_QtsingLeApplication -2.6" ... تحصل على الصورة. لذلك أفترض أن الحل البديل هو إعادة تسمية Dylib إلى "QSA-2.6.dylib" أو شيء من هذا القبيل.
باختصار: تأكد من عدم وجود أسماء الإطار والمكتبات "QT" أو ستواجه مشكلات مع MacDeployqt.
نأمل أن تساعد هذه الإجابة شخصًا ما لديه نفس المشكلة.