Le blogouille de Caro et Nico

Entre famille, sport et aventures !

Résoudre l’erreur CompressorKit -1 de iMovie sur MacOS.

Résoudre l’erreur CompressorKit -1 de iMovie sur MacOS.

Bon voilà iMovie plante lorsque l’on lance la production finale d’un film, avec l’erreur :

L’opération n’a pas pu s’achever. (com.apple.Compressor.CompressorKit.ErrorDomain erreur -1).

Ma configuration : OS El Capitan 10.11.6, iMovie 10.1.6

Vérifiez d’abord avec la console ci-dessous qu’il s’agit bien de la même cause que celle-ci, car il y a aussi d’autres erreurs possibles (du même type sur les compresseurs), que j’ai pu lire sur les forums d’internet. Certaines personnes recommandent de désinstaller puis de réinstaller iMovie, ou encore de redémarrer en mode « safe boot », en maintenant la touche SHIFT enfoncée lors du redémarrage, pour purger le cache. Chez moi cela n’a pas réglé le problème car la panne était plus profonde.

Quand on regarde de plus près, au moyen de la console, on localise un message d’erreur de iMovie. Démarrez Utilitaires / Console / et recherchez iMovie. Il y a un message qui apparaît lorsque le rendu final d’un film est lancé, en gros iMovie va chercher les bibliothèques de compresseurs pour comprimer les films, et plante sur la bibliothèque MobileDevice.framework

Library not loaded: /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice
/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice: mach-o, but wrong architecture

Celle ci se trouve dans le dossier

/System/Library/PrivateFrameworks/MobileDevice.framework/

iMovie la trouve, mais a une erreur d’architecture (mach-o / wrong architecture). En regardant de plus près, on peu depuis le terminal utilisez la commande lipo -info (il faut installer le package de développement, ce qui se fait la première fois qu’on lance la commande lipo).

lipo -info /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice 
Architectures in the fat file: /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice are: x86_64  

Et c’est là que le bat blesse. Les nouvelles bibliothèques MobileDevice qui viennent avec les mises à jour de iTunes ne semblent qu’en 64Bits. Les anciennes étaient compilées pour deux architectures, à la fois 32bits (« i386 ») et 64bits (« x86_64 »). Et il semblerait que le vieux iMovie ne soit qu’en 32bits. L’astuce c’est de récupérer des bibliothèques plus anciennes, démarrer en mode de récupération, utiliser le terminal et remplacer à la main (tout le dossier MobileDevice.framework) avec une version plus ancienne :

Récupérez le fichier Zip ci dessus, et le dézipper sur le bureau par exemple. Vous devriez avoir un dossier MobileDevice.framework sur le bureau maintenant.

Pour redémarrer en mode de récupération, éteindre son Mac, puis démarrer tout en appuyant sur cmd (⌘) + R

Là il semble y avoir deux options, en fonction de comment votre mac a été installé. Soit il y a un environment de récupération intégré, et il boot directement, soit il n’y en a pas (mon cas) et l’on télécharge en environ 5mn une image bootable de chez Apple automatiquement par internet.

Ensuite depuis cet environnement de récupération, ouvrir un terminal (Utilities / Terminal).

Puis naviguer en ligne de commande pour renommer/déplacer la librairie qui pose problème. Il faut d’abord naviguer jusqu’au disque système en lancant les commandes suivantes (faire entrée à chaque fois).

cd /
cd Volumes
cd NOMDUVOLUME_DE_VOTRE_MAC (appuyez sur la touche TAB pour auto compléter la ligne, vous pouvez appuyer plusieurs fois)

Puis descendre dans le dossier des Librairies

cd System
cd Library
cd PrivateFrameworks

et déplacer la librairie défectueuse vers le dossier temporaire deux niveaux plus haut.

mv MobileDevice.framework /../../tmp

Ensuite on déplace le dossier de la bonne librairie du bureau vers le dossier système

cd ../../..
cd Users
cd NomUser    (A remplacer par votre nom du user mac)
cd Desktop
mv MobileDevice.framework ../../../System/Library/PrivateFrameworks/

Ensuite on redémarre, puis on vérifie par le terminal que la librairie est bien présente et maintenant en 32 et 64 Bits. Quand on appelle la commande lipo -info depuis un terminal, on a :

Architectures in the fat file: /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice are: i386 x86_64 

On relance iMovie, et çà fonctionne !

Bon le risque c’est qu’à la prochaine mise à jour de iTunes / OS, les bibliothèques MobileDevice soient à nouveau écrasées, mais vous saurez identifier et résoudre le problème !

20 commentaires

Adil Publié le13:56 - 18 avril 2020

Bonjour,

J’ai le même soucis avec les mêmes versions de El Captain et Imovie.
Pouvez vous SVP me détailler le process « démarrer en mode de récupération, utiliser le terminal et remplacer à la main (tout le dossier MobileDevice.framework) », j’ai bien démarré mon Mac en mode récupération (pomme+R) je lance le terminal mais je ne sais pas comment faire pour copier votre fichier bibliothèque
Merci de votre support

Adil Publié le15:42 - 18 avril 2020

Pouvez vous svp me guider sur la parité qui consiste à remplacer les fichiers en mode récupération via le terminal ?
Je ne sais pas du tout comment faire et je suis bloquer sur IMovie !!!
Merci de votre support

    nico Publié le16:18 - 18 avril 2020

    Bonjour, effectivement c’est un peu technique, je regarde demain matin pour faire un guide complet pas à pas, c’est de la ligne de commande et peu accessible sans un mode d’emploi détaillé.

    nico Publié le15:41 - 19 avril 2020

    Bonjour, j’ai mis à jour l’article avec plus de détails sur la procédure pour remplacer la librairie.

      Adil Publié le19:00 - 19 avril 2020

      Bonjour M. Nico

      Merci pour votre support, pendant que je vous écris j’ai un export en cours d’une vidéo sous Imovie !!!!!
      Je voulais juste apporter quelques précisions qui sont propres j’imagine à ma configuration
      J’ai un MacBook Pro (mi 2009) sous IOS 10.11.6 et Imovie 10.1.6, avec la partition de récupération déjà intégré (j’avais fait une clean Install il y a quelque temps).
      J’ai donc commencé à suivre votre manip par les lignes de commande jusqu’à « et déplacer la librairie défectueuse vers le dossier temporaire deux niveaux plus haut : mv MobileDevice.framework /../../tmp  » la erreur dans terminal  » no file exist » un truc du genre mais bon j’arrive à comprendre que le fichier est introuvable dans le répertoire !!!!!!
      Afin de vérifier la véracité de ce que me dit le terminal je vais dans « shell » dans la barre des menus de Terminal puis importer et la Terminal ouvre une fenêtre qui ressemble au Finder (et la j’avoue être beaucoup plus à l’aise que directement sous terminal !!!).
      Je suis donc votre chemin OS X Base System/System/Library/PrivateFrameworks et la en effet le Mobilzedevice.framework n’existe pas !!!! Je navigue sur mon disque (le mien s’appelle « Mac SSD ») puis system/library/PrivateFrameworks le fichier MobileDevice.framework existe bien dans ce dossier et non pas dans le « OS X Base System »
      J’essaie donc via le terminal de déplacer via la commande « mv » le fichier il ne veut rien savoir il me dit « read only » !!!!! Grrrr il commence à m’énerver !!!!

      Je ne doute pas de mes compétences en code (humour bien entendu!!!!) et en ayant lu votre petit guide je me lance dans :
      – j’ouvre une fenêtre dans terminal « shell » puis « importer »
      – je navigue sur mon disque (le mien s’appelle « Mac SSD ») puis system/library/PrivateFrameworks le fichier MobileDevice.framework existe bien dans ce dossier et la je fais un clic droit puis renommer avec un « bak_ » devant le nom. Il accepte !!!!!!
      – Je retourne dans terminal cette fois ci pour le reste de la procédure :  » Ensuite on déplace le dossier de la bonne librairie du bureau vers le dossier système  »
      cd /
      cd Volumes
      cd Mac\ SSD (le « \ » pour gérer l’espace dans le nom de mon disc, il faut faire un shift+alt+/)
      cd Users
      cd Adil (Et oui c’est mon prénom)
      cd Desktop
      mv MobileDevice.framework ../../../System/Library/PrivateFrameworks/

      Petit redémarrage du Mac, j’ai peu de doute sur votre manip mais par conscience je vérifie via un lipo -info dans terminal et la il m’affiche bien « i386 x86_64 » cool !!!! Du coup j’ai sauté sur Imovie et la ça tourne encore !!!!

      Voila je n’ai pas votre niveau d’expertise en code, mais grâce à vous j’ai néanmoins réussi à me dépanner en « bricolant », je me doute que ça pourrait irriter certains puriste du code mais le résultat est la !!!!

      Je ne sais pas si j’ai été assez clair mais en tout cas un grand merci de ce post et du support.

      Adil

      PS : encore un dernier petit truc, lors de la mise à jour de votre post vous avez indiqué la même valeur du résultat lipo -info en rouge et en vert soit « i386 x86_64 », et vu que j’avais bien lu votre post avant la MAJ je crois que la version en rouge devrait être « i386 x64 » 🙂 🙂 🙂

        nico Publié le15:26 - 21 avril 2020

        Merci pour le message, effectivement le OS X Base System c’est une erreur, c’est le nom temporaire du système de récupération. J’ai revérifié chez moi, mon disque s’appelle « SSD » et c’est le nom du dossier qu’il faut utiliser pour accéder aux bibliothèques qui posent problème !

Masson Publié le11:04 - 20 avril 2020

Bonjour Adil et Nico
Comment faites vous pour arriver à cd ?
Désolé je suis profane

« pour le reste de la procédure : » Ensuite on déplace le dossier de la bonne librairie du bureau vers le dossier système »
cd /
cd Volumes
cd Mac\ SSD (le « \ » pour gérer l’espace dans le nom de mon disc, il faut faire un shift+alt+/)
cd Users
cd Adil (Et oui c’est mon prénom)
cd Desktop
mv MobileDevice.framework ../../../System/Library/PrivateFrameworks/

Merci de votre aide
Amicalement
Philippe

Mélanie Publié le13:25 - 20 avril 2020

Bonjour, je rencontre le même soucis que vous avec Imovie… J’ai essayé de suivre votre procédure mais je bloque au niveau du terminal. Mon terminal indique : bash-3.2#. Comment fait-on pour accéder au cd/ svp? Merci (je ne m’y connais pas très bien en informatique!)

Adil Publié le09:26 - 21 avril 2020

Bonjour,
Je vais essayer de vous transcrire pas à pas la manip que j’ai faite sur mon Mac avec le guide donner par Nico
1. Télécharger le fichier ZIP de Nico
2. Double cliquez sur le fichier téléchargé
3. Vous devriez avoir un fichier qui se nomme MobileDevice.framework avec en guise de logo un pseudo Lego blanc
4. Mettre ce fichier sur le bureau
5. Éteindre le Mac
6. Appuyez et maintenez enfoncé pomme+R puis démarrer le Mac, une fois la barre de progression démarrer relâcher pomme + R : votre Mac démarre en mode récupération
7. Dans la barre des taches sélectionner Utilitaire puis Terminal
8. Vous devriez avoir une fenêtre blanche avec bash-3.2# d’inscrit
9. Dans la barre des taches sélectionner Shell puis importer
10. Vous avez maintenant une fenêtre semblable au Finder qui s’est ouverte
11. Aller à la racine de votre disque puis system/Library (en Français Bibliothèque)/PrivateFrameworks
12. Dans ce dossier vous devriez avoir un fichier qui se nomme MobileDevice.Framework : c’est ce fichier qu’il faudra remplacer par celui copié sur le bureau
13. Sélectionner le fichier est faire un clic droit dessus (clic droit sous Mac alt + clic), puis renommer, mettre un « bak_ » devant le nom de fichier
14. Quitter la fenêtre d’import en cliquant sur annuler
15. Maintenant dans la fenêtre du Terminal, à la suite de bash-3.2# taper cd / (attention il y a un espace entre cd et / !!!!) puis entrer
16. Si la commande à été acceptée le Terminal n’affiche rien et c’est normal (déroutant on a l’impression que rien ne se passe !!!) le cas contraire il vous affiche une ligne d’erreur
17. Taper cd Volumes puis entrer
18. Taper cd NOMDUDISK (par exemple cd MAC si votre disque s’appelle MAC, dans le cas d’un nom qui comporte des espaces mettre un \ devant les espaces. Pour faire un \ sous Mac faire Alt + Maj + / . Par exemple mon disque s’appelle MAC DE TOTO je vais donc taper cd MAC\ DE\ TOTO) puis entrer
19. Taper cd Users puis entrer
20. Taper cd NOMDESESSION (S le nom de session contient des espaces faire comme pour le nom du disque « \ ») puis entrer
21. Taper cd Desktop puis entrer
22. Taper mv MobileDevice.framework ../../../System/Library/PrivateFrameworks/ puis entrer
23. La normalement le fichier à été déplacé vers le dossier, si vous souhaitez vérifier, ouvrir dans la barre des taches Shell puis importer puis naviguer jusqu’au dossier vous devrier retrouver le MobileDevice.framework
24. Quitter Terminal et le mode de récupération
25. Relancer votre Mac normalement le problème est corrigé !!!

Cette manip à fonctionné sur mon Mac, bon courage
Adil

Masson Publié le11:49 - 21 avril 2020

Bonjour Adil
Merci mille fois
Quand je tape cd / , une ligne -bash-3.2# s’inscrit en dessous… est ce normal ? Tu disais que rien ne doit se passer

    nico Publié le12:33 - 21 avril 2020

    Bonjour, oui c’est normal, c’est l’invité de la ligne de commande qui se répète à chaque instruction. Bon courage pour essayer de régler le problème, je vous conseille tout de même d’essayer de mettre la main sur un informaticien, car manipuler la ligne de commande quand on en a jamais fait, cela peut être sport !

Masson Publié le15:12 - 21 avril 2020

Ça fonctionne
Merci mille fois à Adil et Nico !
Bonne journée à tous

masson Publié le15:49 - 21 avril 2020

la seule différence est que le bouton de partage en haut a droite de la fenetre ne fonctionne pas
mais on s’en fout ; on fait « fichier » et « partage » dans le menu et ça roule !

Adil Publié le16:53 - 21 avril 2020

Et voila encore une personne de sauvée !!! Tout le mérite reviens à Nico je n’aurai jamais su corriger le problème par moi-même.
Espérons que Mélanie saura aussi corriger le problème

PS: Oui en effet quand je précise que rien ne se passe c’est en effet qu’une nouvelle ligne bash-3.2# s’affiche en dessous pour taper la commande suivante (c’est ce qui pour moi est déroutant et que je considère que rien ne se passe 🙂 🙂 🙂 ).

    masson Publié le01:00 - 22 avril 2020

    bonjour Adil ou Nico
    j’ai tenté la meme opé sur mon imac ( en fait celui de ma femme ) plus récent et je bute sur un truc trop bête :
    dans le terminal , le clavier devient qwerty et je ne parviens pas a trouver le signe \
    je ne parviens pas a changer
    uniquement dans terminal , evidemment pas de pb dans l’utilisation normale
    avez vous une idée ?
    j’écume le net , il y a des exemples de correspondance de clavier mais pas sur celui de ma femme qui est récent (sans pavé numerique)
    merci de votre aide

masson Publié le01:07 - 22 avril 2020

le signe \ sert uniquement pour les espaces du nom de disque , je peux peut-etre le renommer sans espace ?
merci encore !

    nico Publié le08:25 - 22 avril 2020

    Absolument. Le mien par exemple s’appelle SSD tout simplement….A faire bien entendu avant d’aller en mode récupération, depuis l’environnement OSX standard.

      masson Publié le12:33 - 22 avril 2020

      c’est bon , ça marche aussi sur le mac de ma femme !
      merci encore à Nico et Adil !
      bon courage

Anaïs Publié le13:31 - 10 mai 2020

Bonjour,
J’essaye de suivre vos précieux conseils.
j’ai trouvé le private framework mais il n’y a pas le mobile Device dedans…
Savez vous comment je peux faire?
Merci beaucoup
Anaïs

    nico Publié le11:58 - 11 mai 2020

    Bonjour Anais,

    Je pense qu’il faudrait d’abord vérifier si le problème que tu as avec ton iMovie est bien le même que décrit et solutionné ici. C’est la partie technique du début de l’article sur la console d’erreur du Mac, on l’on lance un export iMovie, il plante, puis on regarde si on a bien une ligne d’erreur dans la console qui fait référence à cette librairie.

    Il y a d’autres problème possibles autour de l’export iMovie, donc il faut bien confirmer les symptômes avant d’appliquer le remède. Si tu ne vois pas la bibliothèque MobileDevice.Frameworkt c’est peut être que tu as un autre problème.

    Cette librairie est livrée et mise à jour avec iTunes, quand tu branches in iPhone récent.

    A noter que la librairie se trouve dans le dossier :

    /System/Library/PrivateFrameworks/MobileDevice.framework/

    Attention il y a d’autres endroits où des librairies sont stockées, ne pas confondre 🙂

Laisser un commentaire

Compléter la formule ... + Time limit is exhausted. Please reload CAPTCHA.