Aprende a resolver el problema de Mac M1 al instalar las gemas CocoaPods.

Después de intentar crear una aplicación móvil construida con CapacitorJS en Mac, recibí la siguiente excepción al instalar dependencias:

LoadError - dlsym(0x7f9c88e27480, Init_ffi_c): symbol not found -
        /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.3/lib/ffi_c.bundle
        /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in
        `require'
        /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in
        `require'
        /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.3/lib/ffi.rb:5:in `rescue in <top (required)>'
        /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.3/lib/ffi.rb:2:in `<top (required)>'
        /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in
        `require'

Esta excepción se lanza específicamente en Mac basadas en ARM (M1 Sillicon) cuando se ejecuta arch -x86_64 pod install. La solución para eliminar esta excepción de tu proyecto es simplemente instalar la gema FFI con el siguiente comando:

arch -x86_64 sudo gem install ffi

La gema Rubí-FFI es usada para cargar mediante programación bibliotecas nativas vinculadas dinámicamente, funciones de unión dentro de ellos, y llamando a las funciones de código Ruby. Después de ejecutar el comando de instalación de esta gema, recibirás un resultado similar al siguiente:

Building native extensions. This could take a while...
Successfully installed ffi-1.15.3
Parsing documentation for ffi-1.15.3
Done installing documentation for ffi after 3 seconds
1 gem installed

Entonces deberías poder trabajar como de costumbre en tu proyecto sin esta excepción.

Que te diviertas❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores