Google Flutter

วิธีแก้ error: include of non-modular header inside framework module

เรื่องที่เกี่ยวข้อง - Google Flutter, Google Flutter for iOS

อันนี้เป็นเกร็ดเล็กๆ น้อยๆ ที่ได้ระหว่างการติดโฆษณา Admob เข้ากับแอพพลิเคชั่นที่สร้างด้วย Flutter ครับ

เพราะว่าพอได้เอา package Firebase_admob มาใช้ในโปรเจค iOS แล้ว เกิด error ขึ้นตอน Build ใช้งานนั่นเอง ในที่นี้ถ้าเรา build ผ่าน Xcode จะทำให้เราสังเกต error ได้ง่ายขึ้น

โดย Error ที่เป็นเบาะแสแรกคือ

error: 'GULHeartbeatDateStorage.h' file not found

และนำไปสู่ Error ด้านล่าง

include of non-modular header inside framework module FirebaseCore

วิธีการแก้ไขปัญหาค่อนข้างง่าย

แต่ให้แน่ใจก่อนว่า เราได้ทำการรันคำสั่งกับโปรเจคของเราตามขั้นตอนด้านล่างแล้ว

  1. เคลียร์ cache ของ Cocoapod ก่อน ด้วยคำสั่ง pod cache clean --all (รันในโฟลเดอร์ ios)
  2. คลีนโปรเจค flutter ด้วยคำสั่ง flutter clean (รันในโฟลเดอร์โปรเจค flutter)
  3. ติดตั้ง package ใหม่ ด้วยคำสั่ง flutter pub get (รันในโฟลเดอร์โปรเจค flutter)
  4. ติดตั้ง pod ใหม่ทั้งหมด ด้วยคำสั่ง pod install (รันในโฟลเดอร์ ios)

ขั้นตอนต่อไปคือ การตั้งค่าใน Xcode

ให้ทำตามขั้นตอนด้านล่างได้เลย

  1. จากโปรเจค ให้เลือก Targets
  2. แล้วเลือกส่วน Build Setting
  3. ค้นหาส่วนตั้งค่าที่ชื่อว่า Allow Non-modular Includes in Framework Modules และปรับค่าเป็น Yes

หลังจากทำส่วนนี้เสร็จ ก็ให้ปิด และเปิด Xcode ใหม่ และให้ทดสอบ build และรันทดสอบอีกครั้ง ตรงนี้ปัญหาควรถูกแก้ไขได้แล้วครับ

เริ่มต้นเรียนรู้สร้างแอพ iOS และ Android ด้วย Google Flutter ไปกับโค้ชพล

เหมาะสำหรับผู้เริ่มต้น

เขียนครั้งเดียว ใช้ได้ทั้งระบบ iOS และ Android ประหยัดเวลา

เรียนได้ทุกเวลา ไม่มีวันหมดอายุ

ได้รู้ตั้งแต่วิธีติดตั้งโปรแกรม จนเอาขึ้นApp Store และ Play Store

ได้ทำแอพของจริง เริ่มต้นจาก 0 ทุกโปรเจค มีระบบถามตอบ กรณีติดปัญหา

 

อ้างอิง – StackOverflow 1, 2

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save