2015-03-26 2 views
0

Далее следуйте инструкциям ниже для OSX: http://doc.qt.io/qt-5/appicon.html , заявив, что все, что мне нужно сделать, это добавить ICON = myapp.icns в файл моего проекта. я использовал один из файлов ICNS я украла из самого Qt (другими словами, он должен работать, его не проблема конверсии) и при сборки после запуска QMAKE я получаю ошибкуНастройка значка приложения для OSX в Qt Creator

make: *** No rule to make target '1.22/MyProject.icns', needed by 'myapp.app/Contents/Resources/MyProject.icns' 

Я регулярно использую сделать, но имеют небольшой опыт работы с Qt, поэтому я понятия не имею, что он пытается сказать мне здесь (я даже не знаю, откуда эти пути файлов). Файл .icns был добавлен в ресурсы .qrc и находится в базовом каталоге проекта.

Любая помощь очень ценится. Благодаря!

EDIT: ОК, пространство в пути к файлу предотвращало сборку. Теперь он компилируется и запускается, но по-прежнему не имеет значка док-станции.

Вот вывод команды Grep, в соответствии с просьбой Simon Warta:

_Qt_5_1_1_clang_64bit-Debug/Makefile | grep -C 3 icns 
443 
444 : 
445  @$(DEL_FILE) 
446  @sed -e "s,@[email protected],1.22,g" -e "s,@[email protected],????,g" -e "s,@[email protected],myapp.icns,g" -e "s,@[email protected],myapp,g" -e "s,@[email protected],????,g" ../myapp1.22/myapp.plist > 
447 myapp.app/Contents/Resources/myapp.icns: ../myapp1.22/myapp.icns 
448  @test -d myapp.app/Contents/Resources/ || mkdir -p myapp.app/Contents/Resources/ 
-- 
448  @test -d myapp.app/Contents/Resources/ || mkdir -p myapp.app/Contents/Resources/ 
449  @$(DEL_FILE) myapp.app/Contents/Resources/myapp.icns 
450  @$(COPY_FILE) ../myapp1.22/myapp.icns myapp.app/Contents/Resources/myapp.icns 
451 dist: 
452  @test -d .tmp/myapp1.22 || mkdir -p .tmp/myapp1.22 

[[All my source files]] 

477 compiler_rcc_clean: 
478  -$(DEL_FILE) qrc_myapp.cpp 
479 qrc_myapp.cpp: ../myapp1.22/myapp.qrc \ 
480   ../myapp1.22/myapp.icns \ 
481   ../myapp1.22/images/splashmyapp2.png \ 
482   ../myapp1.22/images/splashmyapp1.png \ 
483   ../myapp1.22/images/About.png \ 
-- 
-- 
481   ../myapp1.22/images/splashmyapp2.png \ 
482   ../myapp1.22/images/splashmyapp1.png \ 
483   ../myapp1.22/images/About.png 
486  /Users/EngMac/Qt5.1.1/5.1.1/clang_64/bin/rcc -name myapp ../myapp1.22/myapp.qrc -o qrc_myapp.cpp 

От myapp.pro:

ICON = myapp.icns 
QMAKE_INFO_PLIST = myapp.plist 
+0

Является ли «1.22 /» частью пути к исходному каталогу? У вас там есть место? Можете ли вы опубликовать вывод 'cat -n your-build-dir/Makefile | grep icns' –

+0

Попробуйте вместо ICON = $$ PWD/myapp.icns? qmake немного суетливый о путях в 5.x из моего опыта. –

+1

'ICON = MyProject.icns' отлично работает в нашем проекте Qt 5 на OS X 10.9 и 10.10. –

ответ

3

QMAKE_INFO_PLIST должен быть назван Info.plist. Он может быть помещен в пользовательский подкаталог по вашему выбору, но имя файла исправлено. Это связано с тем, что система OS X будет искать файл с таким именем файла.

Дальнейшие советы отладки (упорядочены по важности):

  1. сообщение ток сообщение об ошибке
  2. Обновлять Makefile части cat -n [...]_Qt_5_1_1_clang_64bit-Debug/Makefile | grep -C 4 icns
  3. Поиск исходного кода для других мест QMAKE_INFO_PLIST: Call git grep QMAKE_INFO_PLIST в корне вашего хранилища
  4. Опубликовать содержимое своего
  5. Опубликуйте информацию о себе г .pro файл
+0

Я изменил значение на 'QMAKE_INFO_PLIST = Info.plist', но все еще ничего не генерировал в выходной директории. Есть предположения? – pdel

+0

Вы полностью удалили каталог сборки? –

+0

Да, просто перестроил все (как отладка) после удаления каталога build-debug, но я все равно ничего не получаю – pdel

0

мне пришлось добавить к Project.pro:

ICON = Project.icns 
QMAKE_INFO_PLIST = Info.plist 

# Qt doesn't copy over the .icns file ?! 
RESOURCE_FILES.files = $$ICON 
RESOURCE_FILES.path = Contents/Resources 
QMAKE_BUNDLE_DATA += RESOURCE_FILES 

и в Info.plist:

<key>CFBundleIconFile</key> 
<string>ContentCanvas</string> 

кажется, что Qt не устанавливает проект до скопируйте файл .icns в пакет (по крайней мере, с Qt 5.9), поэтому его использование в файле .plist бесполезно. Последние три строки в файле .pro копируют его вручную.

Смежные вопросы