พอดีมีพวกเราถามมาในกลุ่มคอร์สออนไลน์เริ่มต้นสร้างแอพ iOS และ Android ด้วย HTML, Angular และ Ionic Framework เกี่ยวกับการสั่งทดสอบแอพเราผ่านคำสั่ง ionic emulate ios ว่าสามารถระบุรุ่น iOS ของ Simulator ได้ไหม
เลยขอเอามาตอบในที่นี้เลยแล้วกัน จะได้เป็นวิธีอ้างอิงให้กับคนอื่นๆ ได้ด้วย
ก่อนที่จะทดสอบแอพบน iOS Simulator
การทำสอบโมบายล์แอพพลิเคชั่นของเรา กับระบบ iOS Simulator เราต้องมีพร้อมอย่างน้อย 3 อย่างนี้ครับ
- เรากำลังใช้เครื่อง Mac หรือ MacBook
- เราติดตั้ง Xcode พร้อมเปิดใช้งานอย่างน้อย 1 ครั้งเรียบร้อย (ต้องกด Accept License Agreement หน่ะ)
- เราติดตั้งระบบให้พร้อมตามที่พลแนะนำไว้ที่นี่ สำคัญคือต้องลง
ios-sim
ให้เรียบร้อยด้วย
ถ้าพร้อมแล้วมาดูกันเลย
คำสั่ง Ionic Emulate ของ Ionic CLI
คำสั่งในการเรียกใช้ iOS Simulator และให้ Ionic CLI ติดตั้งแอพ iOS ลงไปทำงานคือคำสั่ง
ionic emulate ios
โดยระบบ Ionic จะทำการ Build, เรียกเปิดการทำงานของ iOS Simulator, และติดตั้งแอพพลิเคชั่นของเรา พร้อมเปิดใช้งานเรียบร้อย
ซึ่งปกติ Ionic จะเรียกใช้งาน iOS Simulator เวอร์ชั่นมาตรฐานขึ้นมา
และมันอาจจะไม่ใช่เวอร์ชั่นที่เราต้องการก็ได้ เช่นตอนที่คุยอยู่นี้ ก็มี iPhone 7 ออกมาให้ใช้งาน แต่ Ionic ดันไปเปิด Simulator ของ iPhone 6s ซะนี่
ทำยังไง?
วิธีเลือกทดสอบแอพ iOS กับ Simulator เวอร์ชั่นที่ต้องการ
สำหรับการสั่งทดสอบแอพ iOS บน Simulator แบบเจาะจงรุ่นอุปกรณ์ iOS ที่ต้องการ สามารถทำได้โดยการเพิ่มคำสั่งลงไปดังนี้ครับ
ionic emulate ios --target="<ชื่อ Simulator>"
โดยชื่อ Simulator สามารถกำหนดเป็นชื่อรุ่นของอุปกรณ์ iOS ที่ต้องการได้ เช่น ถ้าต้องการรัน Simulator ของ iPhone 7 Plus ก็จะสั่งตามนี้
ionic emulate ios --target="iPhone-7-Plus"
แต่ทั้งนี้ทั้งนั้น สามารถกำหนดเรียกใช้ได้ เฉพาะรุ่นอุปกรณ์ที่มีการติดตั้ง Simulator ในเครื่องเท่านั้น
ซึ่งเราสามารถตรวจสอบรายชื่อของ Simulator ได้จากคำสั่ง
ios-sim showdevicetypes
ก็จะมีการแสดงรายการชื่อรุ่นอุปกรณ์ iOS Simulator ขึ้นมา ให้เลือกใช้ครับ อย่างของพลก็ขึ้นประมาณนี้
Teerasejs-MacBook-Pro:~ teerasejjiraphatchandej$ ios-sim showdevicetypes
iPhone-5, 10.2
iPhone-5s, 10.2
iPhone-6, 10.2
iPhone-6-Plus, 10.2
iPhone-6s, 10.2
iPhone-6s-Plus, 10.2
iPhone-7, 10.2
iPhone-7-Plus, 10.2
iPhone-SE, 10.2
iPad-Retina, 10.2
iPad-Air, 10.2
iPad-Air-2, 10.2
iPad-Pro--9-7-inch-, 10.2
iPad-Pro, 10.2
Apple-TV-1080p, tvOS 10.1
Apple-Watch-38mm, watchOS 3.1
Apple-Watch-42mm, watchOS 3.1
Apple-Watch-Series-2-38mm, watchOS 3.1
Apple-Watch-Series-2-42mm, watchOS 3.1
ย้ำอีกครั้ง! ว่าใน Xcode ต้องมีการติดตั้ง iOS Simulator ตัวนั้นๆ ไว้แล้วนะ
อ้างอิง – Github