49
votes

Cocoapods sur M1 (silicium Apple) échoue avec une mauvaise architecture FFI

L'exécution 'Pod Install' sur un M1 MacBook a échoué pour moi en raison d'un problème FFI, comme décrit Ici .

J'ai suivi certaines des solutions de contournement (je suppose que je les ai toutes essayées dans divers ordres), mais maintenant j'obtiens une erreur légèrement différente:

arch: posix_spawnp: gem: Bad CPU type in executable

Donc, il semble que j'ai maintenant FFI, mais avec une mauvaise architecture? Comment puis-je réparer cela? Cela se produit avec / sans exécuter le terminal en mode Rosetta.

L'une des solutions de contournement proposées n'a pas réussi pour moi. Lorsque j'essaye:

sudo arch -x86_64 gem install ffi


0 commentaires

10 Réponses :


90
votes

répondant à ma propre question. J'ai résolu le problème FFI en désinstallant ma version rubis défectueuse et ma cocoapodes, puis j'ai utilisé l'arc -x86_64 pour réinstaller FFI et Cocoapods.

Ce sont les étapes que j'ai faites pour revenir à un état de travail (et pour appliquer les solutions de contournement M1 pour FFI):

  • Désinstaller Ruby avec: Brew Unstall Ruby --Force

  • Désinstaller Cocoapods. Au début, essayez de répertorier toutes les versions / composants CocoAPods avec Liste de gemmes - local | grep cocoapods . Ensuite, désinstallez-les un par un, dans mon cas:

  • sudo gemm désinstaller cocoapods

    sudo gemm désinstaller cocoapods-core

    sudo gemm désinstaller cocoapods-downloader

    etc.

    1. En tant qu'étape suivante, j'ai pu réinstaller FFI puis cocoapodes avec:
    2. sudo arch -x86_64 gem install ffi

      sudo arch -x86_64 gem install cocoapods

      Une fois terminé, je pouvais exécuter pod install comme prévu. Notez que j'avais le terminal ouvert tout le temps en mode standard - pas de rosetta requise.


    10 commentaires

    Enfin, j'ai trouvé que cette solution fonctionne, j'ai tout essayé, de l'installation d'une nouvelle version de Ruby avec RBENV, à la mise à jour de toutes les dépendances. Merci :)


    Merci, a parfaitement résolu le problème. Très reconnaissant!


    Merci, l'a résolu parfaitement pour la configuration du projet Flutter MacBook Air M1.


    C'est la solution !!! Merci beaucoup


    Brew Désinstall - Inigore Dependance Ruby est requis au lieu de brasser la désinstallation de Ruby - Force


    Aaah merci beaucoup, c'est du travail pour moi


    Cela ne m'a pas aidé sur mon M1


    Cela a fonctionné pour moi! Remarque: vous devez pas modifier l'arc param de -x86_64 en -arm64 (comme je l'ai fait) pour le faire fonctionner sur votre machine Apple Silicon .


    Après avoir parcouru tant de threads, cette étape l'a finalement fait pour moi: Brew désinstaller Ruby --Force . Merci!


    Ne fonctionne pas, nouvelle erreur - cocoapodes non installés ou non à l'état valide .



    35
    votes

    Comme ledit DataSun, j'ai supprimé CocoAPods

    brew remove rbenv
    sudo rm -rf ~/.rbenv
    sudo arch -x86_64 gem install ffi
    sudo arch -x86_64 gem install cocoapods
    brew install rbenv
    rbenv install 3.0.1
    rbenv global 3.0.1
    
    pod install
    

    puis l'exécution:

    gem list --local | grep cocoapods | awk '{print $1}' | xargs sudo gem uninstall
    

    sans problème.

    >


    8 commentaires

    C'est génial, merci d'avoir facilité la copie et la coller


    Pour la postérité pour quiconque essaie ce qui précède et recevant l'erreur pas de podfile , j'ai exécuté ce qui précède à l'exclusion pod install puis exécuté bundle install et maintenant exécuter lisse


    Cela échoue toujours: sudo arch -x86_64 gem install ffi . Une autre commande à essayer?


    Vous enregistrez ma journée, mais j'utilise Mac avec une puce M1 et avant d'installer Rbenv 3.0.1, je suive les étapes dans Stackoverflow.com/questions/66128681/…


    Cela a aidé, merci


    Cette solution ne m'a pas aidé, j'utilise un M1


    Cela a fonctionné pour moi sur MacBook Pro avec Apple M1 Pro.


    J'ai également dû retirer les pods dir et podfile.



    14
    votes

    Je suis d'accord avec la réponse de Datasun. Mais j'ai réussi à suivre à peu près les mêmes étapes qui ont donné un résultat fonctionnel, que je pensais être meilleur ou aussi bon. J'ai exécuté les lignes dans le terminal:

    brew install cocoapods
    

    puis

    sudo gem uninstall cocoapods
    sudo gem uninstall cocoapods-core
    sudo gem uninstall cocoapods-downloader
    

    Après cela, je voulais homebrew the Cocoapods, donc j'ai utilisé:

    brew uninstall --ignore-dependencies ruby
    

    (vous devrez peut-être utiliser Reinstalstal)


    3 commentaires

    Merci, c'est la seule solution a fonctionné pour moi


    Oui, réinstaller via Brew, pas Gem!


    Merci beaucoup mate! C'est la seule solution qui a également fonctionné pour moi.



    2
    votes

    Pour moi, j'ai dû faire ces choses supplémentaires après avoir suivi @datasun:

    echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
    

    et

    brew install ruby
    


    0 commentaires

    1
    votes

    Cela a décrit le problème exact que j'avais. Cependant, aucune des solutions n'a fonctionné. En fin de compte, c'est ce qui m'a aidé à résoudre le problème:

       brew unlink libyaml && brew link libyaml
       brew unlink openssl && brew link --force openssl
    

    Référence: https://stackoverflow.com/a/24902917/1809053


    0 commentaires

    10
    votes

    J'ai essayé presque tout et c'était la seule solution qui a fonctionné pour moi:

    uninstalling the cocoapods package through gem (sudo gem uninstall cocoapods)
     and reinstalling it with homebrew (brew install cocoapods) fixed my problem.
    

    Le problème était que j'ai installé cocoapods via l'installation de GEM au lieu de Homebrew.


    0 commentaires

    2
    votes

    Je suis d'accord avec la réponse de Datasun. Mais actuellement, nous pouvons utiliser arm64 au lieu de x86_64 dans M1 MacBook.

    Je réinstalle Ruby et exécutez les lignes dans le terminal: p >

    gem uninstall cocoapods
    gem uninstall cocoapods-core
    gem uninstall cocoapods-downloader
    
    gem uninstall ffi
    gem install ffi
    


    1 commentaires

    Cela a fonctionné pour moi: 1. sudo arch -arm64e gem install cocoapods 2. sudo arch -arm64e gem install ffi



    4
    votes

    J'ai obtenu cette erreur lors de la configuration du projet de condensateur sur mon nouveau MacBook avec la puce M1. Cependant, si vous souhaitez utiliser un condensateur, Flutter ou React natif, vous obtiendrez cette erreur car il s'agit d'un problème indépendant de Framework, lié à l'ordinateur.

    Ruby et Cocoapods doivent être installés sur votre ordinateur. Dans mon cas, exécuter les commandes suivantes, une par une a fonctionné.

    1.

    pod install
    


    1 commentaires

    Vous devrez peut-être avoir le chemin vers POD. echo 'export path = "/ opt / homebrew / opt / ruby ​​/ bin: / opt / homebrew / lib / ruby ​​/ gems‌ /3.1.0/bin/:$path"' >> ~ / .zshrc < / code>. La version Ruby peut varier.



    4
    votes

    Je l'ai fait fonctionner en nettoyant d'abord toutes les pods précédemment installés: Pod Deintegrate Puis les installer à nouveau en utilisant cette commande: Arch -x86_64 Pod Install


    0 commentaires

    0
    votes

    Il suffit d'exécuter ce code, corrige déjà

    brew uninstall --ignore-dependencies ruby
    


    0 commentaires