Recibo 'Error: ¡No se pudo generar el PDF! Tipo de CPU incorrecto en el ejecutable en mi macbook m1

Tengo pruebas con evil_pdf y wkhtmltopdf-binary. Ambas gemas están instaladas, pero los errores no desaparecen :( Traté de instalar gemas con Rosetta, pero nada me ayuda

el error está aquí

Minitest::UnexpectedError:
       RuntimeError: Failed to execute:
       ["/Users/larkin/.rvm/gems/ruby-2.7.2/bin/wkhtmltopdf", "--lowquality", "--footer-center", "конфіденційно", "--footer-left", "Служба етичного контролю", "--footer-right", "[page] / [topage]", "--footer-font-size", "10", "file:////var/folders/sk/3493jp896vj_spzzn_z2zvkm0000gn/T/wicked_pdf20211129-63903-gn9oc5.html", "/var/folders/sk/3493jp896vj_spzzn_z2zvkm0000gn/T/wicked_pdf_generated_file20211129-63903-urbrlu.pdf"]
       Error: PDF could not be generated!
        Command Error: /Users/larkin/.rvm/gems/ruby-2.7.2/gems/wkhtmltopdf-binary-0.12.5.4/bin/wkhtmltopdf:50:in `exec': Bad CPU type in executable - /Users/larkin/.rvm/gems/ruby-2.7.2/gems/wkhtmltopdf-binary-0.12.5.4/bin/wkhtmltopdf_macos_carbon (Errno::EBADARCH)
        from /Users/larkin/.rvm/gems/ruby-2.7.2/gems/wkhtmltopdf-binary-0.12.5.4/bin/wkhtmltopdf:50:in `<top (required)>'
        from /Users/larkin/.rvm/gems/ruby-2.7.2/bin/wkhtmltopdf:23:in `load'
        from /Users/larkin/.rvm/gems/ruby-2.7.2/bin/wkhtmltopdf:23:in `<main>'
        from /Users/larkin/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `eval'
        from /Users/larkin/.rvm/gems/ruby-2.7.2/bin/ruby_executable_hooks:22:in `<main>'
Answer

Tuve el mismo problema en macbook con chip apple m1. Para arreglar eso, necesita descargar manualmente el binario para el chip arm, para la versión más reciente (0.12.6) simplemente vaya a: https://github.com/wkhtmltopdf/packaging/releases/0.12.6-1 y descargue:wkhtmltox-0.12.6-1.macos-cocoa.pkg

Luego instale el script y edite su wicked_pdf.rbarchivo para que apunte al binario recién instalado:

WickedPdf.config = {
  exe_path: '/usr/local/bin/wkhtmltopdf',
}

También puede hacer algunos cambios para mantener el comportamiento anterior en otras máquinas y usar binarios que no sean gemas solo cuando ya estén instalados:

if File.exist?('/usr/local/bin/wkhtmltopdf')
  binary_path = '/usr/local/bin/wkhtmltopdf'
else
  binary_path = Gem.bin_path('wkhtmltopdf-binary', 'wkhtmltopdf')
end

WickedPdf.config = {
  exe_path: binary_path,
}