Не удается загрузить анимацию Quartz в заставке: вы не можете использовать заставку XXX на этом компьютере.

Я написал простую заставку, которая загружает анимацию Quartz с помощью QCView. Но когда я устанавливаю его на Snow Leopard, он появляется в предварительном просмотре заставки с сообщением «Вы не можете использовать заставку XXX на этом компьютере ...». Если я закомментирую строку loadCompositionFromFile (но оставлю связанную структуру Quartz), все будет в порядке. Я также могу использовать анимацию Quartz отдельно в качестве заставки. Так что проблема с загрузкой файла qtz в QCView. Любые мысли будут оценены.

спасибо, Пэт


person Pat Niemeyer    schedule 14.12.2009    source источник
comment
Появляются ли какие-либо сообщения консоли при предварительном просмотре заставки?   -  person smokris    schedule 14.12.2009
comment
Боюсь, что нет. Единственные сообщения, которые я вижу в консоли, — это несколько предупреждений о настройках. Спасибо.   -  person Pat Niemeyer    schedule 14.12.2009


Ответы (2)


Вы строите с GC без поддержки? Механизм заставки работает со сборкой мусора при работе в 64-разрядной версии Snow Leopard.

Полный набор требований см. в разделе QA1666.

Обратите внимание, что даже если вы поддерживаете только Snow Leopard, вам все равно следует собирать 32-разрядную версию с поддержкой GC или -unsupported (не -required) в конфигурации сборки без выпуска, если вы хотите использовать тестовые приложения, такие как SaverLab.

Кроме того, есть ли причина, по которой вы размещаете кварцевую композицию в QCView? Скринсейвер может напрямую обрабатывать кварцевые композиции.

person Peter Hosey    schedule 15.12.2009
comment
Я строю только для 64-битной арки и установил для objc gc значение required ... но, видимо, это не мой код вызывает ошибку, а код кварца, с которым он связан. Сообщение «Вы не можете использовать...», которое я получаю, не появляется при загрузке заставки, как показано в этом документе, а только в виде текста на экране в предварительном просмотре… по-видимому, оно решает это после того, как заставка начала выполняться, и она пытается загрузить файл QTZ. (Это идентичное сообщение, но в моем случае отображается только в предварительном просмотре после запуска, а не в раскрывающемся списке, препятствующем загрузке/выбору). - person Pat Niemeyer; 15.12.2009
comment
Я могу воспроизвести проблему, обсуждаемую в документе, установив obj-c GC на неподдерживаемый, а затем я получаю это раскрывающееся сообщение при загрузке моей заставки. Так что я думаю, что это, к сожалению, не имеет ничего общего с тем, как я компилирую свой код, а связано с компоновкой Quartz или с тем, как был создан мой файл QTZ... - person Pat Niemeyer; 15.12.2009
comment
Отвечая на ваш вопрос, причина, по которой я использую API заставки, заключается в том, что я хочу запустить приложение при выходе из заставки. Это просто обёртка вокруг QCView с этим обработчиком выхода. И да, я понимаю, что есть уведомление о выходе из экранной заставки, но я хотел, чтобы это было легко установлено конечными пользователями (не нужно запускать демон). Спасибо. - person Pat Niemeyer; 15.12.2009

Я предполагаю, что 32-битный двоичный файл передается 64-битному процессу или наоборот.

person Azeem.Butt    schedule 14.12.2009
comment
Да, но моя заставка компилируется как 64-битная цель, и она отлично работает без кварцевой анимации. Я осмотрелся, но не нашел в Quartz Composer никаких опций для вывода файлов QTZ... - person Pat Niemeyer; 14.12.2009
comment
И вы уже пробовали скомпилировать его и для 32-битной адресации? - person Azeem.Butt; 15.12.2009
comment
Ну, я не очень хорошо знаком с XCode, но я попытался сделать чистую сборку экранной заставки после выбора каждого из i386 и x86_64 в качестве активной архитектуры. Я не углублялся в настройки сборки, кроме этого. Я заглянул в /Library/System/Frameworks, чтобы узнать, существуют ли разные версии Quartz Framework для связывания... но я вижу только одну. Еще раз повторюсь - заставка работает нормально, если я не загружаю файл QTZ в QCView. И файл QTZ отлично работает сам по себе в качестве скринсейвера... Так что это странно. Благодарю. - person Pat Niemeyer; 15.12.2009
comment
Может быть, попробуйте что-нибудь попроще для своего первого проекта. - person Azeem.Butt; 15.12.2009
comment
а) немного язвительный? :) б) Я имел в виду, что я не очень хорошо знаком со всеми вариантами сборки obj-c, проблемой привязки фреймворка и причудой Snow Leopard (а вы?) c) На самом деле это именно тот проект, который может попробовать новичок ... В проект шаблона ScreenSaver, созданный XCode, добавлено около 3 строк кода. Очевидно, это какая-то проблема, связанная с Quartz, которая казалась правильным вопросом и не могла быть ужасно очевидной, потому что на нее все еще нет ответа :) - person Pat Niemeyer; 15.12.2009