1

J'ai écrit un simple économiseur d'écran qui charge une animation Quartz à l'aide d'un QCView. Mais quand je l'installe sur Snow Leopard, il apparaît dans l'aperçu de l'écran de veille avec un message disant "Vous ne pouvez pas utiliser l'économiseur d'écran XXX sur cet ordinateur ...". Si je commente la ligne loadCompositionFromFile (mais laisse le framework Quartz lié) ça va. Je peux aussi utiliser l'animation Quartz en tant qu'économiseur d'écran. Il s'agit donc de charger le fichier qtz dans un QCView qui pose problème. Toute réflexion sera apprécié.Impossible de charger l'animation Quartz dans l'économiseur d'écran: "Vous ne pouvez pas utiliser l'économiseur d'écran XXX sur cet ordinateur"

, grâce

Pat

+0

Des messages de console s'affichent-ils lorsque vous prévisualisez l'économiseur d'écran? – smokris

+0

Non, je ne crains pas. Les seuls messages que je vois sur la console sont quelques avertissements sur les préférences. Merci. –

Répondre

0

Je pense qu'un binaire de 32 bits est envoyé à un processus 64 bits ou vice-versa.

+0

Oui, mais mon économiseur d'écran est compilé en tant que cible 64 bits et il fonctionne bien sans l'animation à quartz. J'ai regardé autour de moi mais je n'ai vu aucune option sur Quartz Composer pour sortir des fichiers QTZ ... –

+0

Et vous avez déjà essayé de le compiler pour l'adressage 32 bits? –

+0

Eh bien, je ne suis pas intimement familier avec XCode, mais j'ai essayé de faire des builds propres de l'économiseur d'écran après avoir sélectionné chacun des i386 et x86_64 comme "Architecture active". Je n'ai pas plongé dans les paramètres de construction bien au-delà de cela. J'ai regardé dans le/Library/System/Frameworks pour voir s'il y avait différentes versions de Quartz Framework pour lier ... mais j'en vois une seule. Juste pour réitérer aussi - l'économiseur d'écran fonctionne bien si je ne charge pas le fichier QTZ dans le QCView. Et le fichier QTZ s'exécute tout seul comme un économiseur d'écran ... Donc c'est bizarre. merci. –

1

Construisez-vous avec GC non pris en charge? Le moteur d'économiseur d'écran s'exécute garbage-collect lors de l'exécution en 64 bits sur Snow Leopard.

Voir QA1666 pour l'ensemble des exigences. Notez que même si vous ne prenez en charge que Snow Leopard, vous devez toujours compiler le format GC 32 bits ou non pris en charge (non requis) dans une configuration de version non version si vous souhaitez utiliser des applications de test telles que SaverLab.

De même, y a-t-il une raison pour laquelle vous organisez une composition de quartz dans un QCView? L'économiseur d'écran peut gérer les compositions de quartz directement.

+0

Je construis seulement pour l'arcade 64bit et ai mis objc gc à "required" .. mais apparemment ce n'est pas mon code qui cause l'erreur, c'est le code de quartz avec lequel il est lié. Le message "Vous ne pouvez pas utiliser ..." n'apparaît pas lors du chargement de l'économiseur d'écran comme indiqué dans ce document, mais uniquement sous la forme d'un texte sur l'écran ... apparemment, il décide après l'exécution de l'économiseur d'écran et il essaie de charger le fichier QTZ. (C'est un message identique mais dans mon cas, il n'apparaît que dans l'aperçu après l'exécution, pas un message déroulant vous empêchant de charger/sélectionner). –

+0

Je peux reproduire le problème que ce document discute en réglant obj-c GC sur non pris en charge, puis je reçois ce message déroulant lors du chargement de mon économiseur.Donc je pense que cela n'a malheureusement rien à voir avec la façon dont je compile mon code, mais quelque chose sur la liaison avec Quartz ou comment mon fichier QTZ a été produit ... –

+0

En réponse à votre question, la raison pour laquelle j'utilise l'API d'économiseur d'écran C'est parce que je veux lancer une application en sortie de l'économiseur d'écran. C'est juste une enveloppe simple autour du QCView avec ce crochet de sortie. Et oui, je me rends compte qu'il y a une notification pour la sortie de l'économiseur d'écran mais je voulais que cela soit facilement installé par les utilisateurs finaux (pas besoin de lancer un démon). Merci. –