พอดีคุณเอ หนึ่งในนักเรียนคลาส Google Flutter เจอปัญหาหนึ่งที่ค่อนข้างซับซ้อน สำหรับการติดตั้งระบบบน MacOS สำหรับการพัฒนาแอพด้วย Flutter เลยขอเอามาแปะไว้ซักหน่อย
Cocoapod install error
ปัญหาที่พบคือการที่เราไม่สามารถ setup Cocoapod ได้ ซึ่งเป็นระบบสำคัญในการทำให้โปรเจคของเราสามารถทำงานกับโค้ดโปรแกรม Native ฝั่ง iOS ได้
ปัญหานี้ค่อนข้างเจอกันเยอะ เพราะเกี่ยวข้องกับชิป Apple ตระกูล M ทั้งหลาย M1, M2, M3, M4 ขึ้นไปมีโอกาสสูงที่จะเจอครับ
รายการ Error ที่เข้าข่ายมีดังนี้
Building native extensions. This could take a while...
ERROR: Error installing ffi:
ERROR: Failed to build gem native extension.
ซึ่งพอพยายามติดตั้ง package ที่เกี่ยวข้องด้วยคำสั่งด้านล่าง ก็จะมี error ทับซ้อนมาอีกบานเบอะ ทำให้ปัญหาดูแก้ไขยากมากขึ้น
sudo arch -x86_64 gem install ffi
สาเหตุ
เรื่องของเรื่อง มันมาจากการที่เราติดตั้งระบบบนเครื่องที่ใช้ Apple Silicon เป็นตัวหลัก (เครื่องที่ใช้ chip intel จะไม่เจอปัญหานี้) อารมณ์ประมาณเราเจอบั๊กในแอพเวอร์ชั่นใหม่ แต่เวอร์ชั่นเก่าดันไม่เจอ (จริงๆ มันเป็นเรื่องของตัวชิปแหละ แต่ให้เห็นภาพง่ายๆ แล้วกัน)
วิธีแก้ไขกระจัดกระจายในอินเตอร์เน็ต ขอมาสรุปรวมไว้เป็นลำดับ เพื่อให้ง่ายต่อการทำตามนะครับ
วิธีแก้
- อย่างแรกคือโปรแกรม Terminal ของเราต้องไม่เปิดการทำงาน Open in Rosetta เพราะบางเว็บจะเสนอวิธีนี้ ซึ่งจะทำให้วุ่นวายไปใหญ่
- จากนั้นคือเรื่อง Rosetta 2 เราจะทำการรันคำสั่งด้านล่างนี้ ในโปรแกรม Terminal
/usr/sbin/softwareupdate --install-rosetta --agree-to-license
- จากนั้นเราจะทำการติดตั้ง Homebrew ที่จะทำงานกับ Apple M chip ได้แบบไร้รอยต่อ ด้วยคำสั่งด้านล่าง
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
- จากจุดนี้เราสามารถสั่งติดตั้ง package ที่จำเป็นในการทำงานของ CocoaPods แล้วครับ รันคำสั่งด้านล่างที่ละคำสั่งตามลำดับเลย
sudo arch -x86_64 brew install ffi
sudo arch -x86_64 brew install cocoapods
เสร็จเรียบร้อย ลองเช็คระบบอีกที ว่าสามารถรันคำสั่ง pod
ได้ไหม ถ้าได้ก็ถือว่าโอเคครับ