PhoneGap/CordovaSwift

สรุป 11 เหตุผลที่ Apple จะปฏิเสธ (Reject) แอพพลิเคชั่นของคุณ

เรื่องที่เกี่ยวข้อง - iOS, iOS Application Development, PhoneGap for iOS

“Rejected” หรือ “รีเจ็ค” เป็นคำที่นักพัฒนาแอพพลิเคชั่นสำหรับอุปกรณ์พกพาไม่อยากได้ยินเลย

ซึ่งทางฝั่ง iOS จะมีการรีเจ็คสูงกว่าฝั่งของ Android มาก ปัญหามันก็อยู่ที่ว่า ทำไม Apple ถึงรีเจ็คแอพพลิเคชั่นของเรา?​

ทาง Apple คงได้รับคำถามนี้กันอย่างท่วมท้น เลยรวบรวมกรณีที่เขาใช้ในการรีเจ็คแอพกันบ่อยๆ มาเผยแพร่ให้นักพัฒนาเอาไปดูกัน จะได้ไม่ต้องโดนรีเจ็คอีก (สงสัยทางคนตรวจก็คงเริ่มขี้เกียจเหมือนกันครับ ฮา)

1. แอพอุดมไปด้วยข้อผิดพลาด (Crashes and Bugs)

อันนี้ค่อนข้างแน่นอนว่าจะผ่านการตรวจไปไม่ได้แน่นอน แอพที่ทดสอลแล้วว่ามีข้อผิดพลาด (หรือ “บั้ก”) ที่ร้านแรงที่สุดคงแอพพัง (Crash) ออกมาที่หน้า Home screen จะโดนรีเจ็ค

วิธีแก้ก็คือทดสอบแอพพลิเคชั่นให้รัดกุม มากกว่าที่จะเสียเวลารอตรวจเพื่อที่จะเจอข้อผิดพลาดจาก App Store

2. ส่วนติดต่อผู้ใช้ห่วย ไม่ตรงตามเกณฑ์ของ Apple (Substandard User Interface)

UI Do and dont by apple ios

เรื่องของหน้าตา และประสบการณ์การใช้งาน (หรือที่เรียกกันว่า “User Experience”) ของแอพพลิเคชั่นจาก Apple จะมีแนวทางไว้ให้ศึกษาอยู่แล้ว ไม่ว่าจะใช้ภาษา Native อย่าง Objective-C หรือ Swift หรือใช้ Framework อื่นๆ อย่าง Unity, PhoneGap, หรือ Ionic ก็ควรที่จะทำตามแนวทางที่เขาวางกรอบไว้

ดู Design Guide ของ Apple ที่นี่ หรือ อะไรควร อะไรไม่ควรในการออกแบบ UI ที่นี่ 

3. ลิงค์ไม่ติด (Broken Links)

Link ทุกอันที่เราใส่ไว้ในแอพพลิเคชั่นต้องสามารถใช้งานได้

ในที่นี้รวมถึง link ติดต่อฝ่าย support หรือแม้แต่เอกสารอ้างอิงทางกฎหมายที่เกี่ยวข้องกับแอพด้วยครับ

4. ลืม Content จำลองไว้ในแอพ (Placeholder Content)

Place holder from Placeholdit

ในการสร้างแอพพลิเคชั่น ผมชอบใช้ content พวก place holder (ข้อความที่ไม่มีความหมายจาก lorem ipsum หรือภาพสีเทาเพื่อบอกขนาดของตัวภาพ) เพื่อสร้าง “ตัวต้นแบบ” ของแอพอย่างรวดเร็ว

แต่ถ้าคุณลืมเอาข้อความ หรือพวกภาพดังกล่าวออกจากแอพ ก่อนส่งให้ App Store พิจารณาล่ะก็ เขาจะถือว่าแอพนี้ยังไม่พร้อม (เพราะดันมีข้อมูลจำลองอยู่นี่นา)​ และรีเจ็คครับ

5. ข้อมูลไม่ครบ (Incomplete Information)

อันนี้สำคัญ เพราะบางแอพพลิเคชั่นไม่สามารถทดสอบโดยการเปิดใช้ในเครื่องอย่างเดียวได้ ผมสรุปมาให้ 2 กรณีครับ

กรณีที่ 1 แอพที่ต้องลงชื่อเข้าใช้ (sign in หรือ log in)

สำหรับแอพที่ต้องมีการลงชื่อเข้าใช้ ต้องมีการเตรียมบัญชีผู้ใช้สำหรับทดสอบให้ทางผู้ตรวจด้วย

Apple อยากตรวจทุกซอกมุม ที่จะถูกใช้จริงตอนที่แอพถูกปล่อยให้ดาวน์โหลดแล้ว ถ้าเขาไม่สามารถลงชื่อเข้าใช้ได้ ก็จะรีเจ็คกลับมา (ไม่ยอมให้ตรวจนิ)

กรณีที่ 2 ต้องการสภาพแวดล้อมพิเศษเพิ่มเติม

บางแอพพลิเคชั่นออกแบบมาให้ทำงานกับอุปกรณ์อื่นๆ อย่างเช่น แอพควบคุมโดรน หรือแอพที่สั่งถ่ายภาพกับกล้อง GoPro

ถ้าเป็นจำพวกนี้ต้องมี link ไปยังวิดีโอที่สาธิตการใช้งานให้ทีมตรวจสอบดู และทำตามได้ด้วย ไม่งั้น ไม่ผ่านครับ

6. มีโฆษณา แต่ไม่ดำเนินการให้ถูกต้อง (Advertisements)

สำหรับแอพที่มีการแทรกโฆษณามาในแอพ ในขั้นตอนการส่งตรวจ จะมีการถามข้อมูลเกี่ยวกับ Advertising Identifier (IDFA) ด้วย

ซึ่งถ้าคุณระบุว่ามีการใช้งาน IDFA แต่ตัวโฆษณากลับไม่ได้ใช้งานตรงตามที่กำหนด ก็จะถูกรีเจ็ค

ทีมตรวจสอบบอกว่าให้ทดสอบว่าตัวโฆษณาแสดงผลได้อย่างถูกต้องบนอุปกรณ์ iOS ให้เรียบร้อยก่อนส่งให้ตรวจครับ

และในกรณีที่เราไม่ได้แจ้งว่าแอพเรามี Ads แบบ IDFA (แต่จริงๆ เรามี) ทีมตรวจสอบจะเปลี่ยนสถานะของการพิจารณาเป็น Invalid Binary แทน

7. การแสดงผลเว็บไซต์ หรือเนื้อหาจากเว็บที่ไม่เหมาะสมกับ iOS (Web clippings, content aggregators, or a collections of links)

การทำงานของแอพส่วนใหญ่จะมีการนำ content หรือข้อมูลจาก Internet มาแสดง ซึ่งถ้าการแสดงผลข้อมูลนั้น ไม่เหมาะสมที่จะแสดงบนอุปกรณ์ iOS ก็มีสิทธ์เหมือนกัน

ส่วนใหญ่ที่พบก็อาจจะเป็นแอพที่ดึง feed เนื้อหาข่าว หรือรวม link จาก internet มาแสดงผลนั่นเอง ซึ่งทีมตรวจสอบ จะพิจารณาเป็นพิเศษว่าเหมาะสมหรือไม่

8. ส่งแอพคล้ายๆ กันบ่อยๆ (Repeated Submission of Similar Apps)

การส่งแอพลักษณะคล้ายๆ กัน (ยกตัวอย่างเช่นแอพดูทีวี ช่อง 3 แล้วก็สร้างแอพอีกตัวไว้ดูช่อง 7 โดยการเปลี่ยนรายละเอียดด้านในนิดเดียว) อาจจะโดนพิจารณาให้แอพทั้งหมดถูกรีเจ็ค

9. รายละเอียดที่แสดงไม่ชัดเจน (Inaccurate Descriptions)

อันนี้จะเป็นส่วนข้อมูลที่ต้องให้กับทาง App Store ครับ

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

10. แอพทำไม่ได้อย่างที่โม้ (Misleading Users)

ในบางครั้งเราอธิบาย, ให้รายละเอียด, หรือโฆษณาแอพของเราอย่างสวยหรู แต่ตัวแอพจริงๆ กลับทำไม่ได้อย่างที่อ้างไว้ ก็จะถูกรีเจ็ค

11. แอพไม่มีคุณค่าพอที่จะอยู่บน App Store (Not enough lasting value)

ถ้าแอพพลิเคชั่นของเราถูกพิจารณาว่ามีความสามารถในการทำงานน้อยมาก (อย่างเช่น กดปุ่มแล้วมีคำว่า “สวัสดี” โผล่ขึ้นมา) ก็จะถูกรีเจ็ค

สัดส่วนของกรณีแอพพลิเคชั่นโดนรีเจ็ค

กราฟด้านล่างนี้ Apple สรุปมาให้ดูว่าในรอบ 7 วันมีแอพโดนรีเจ็คเพราะอะไรบ้าง

Top 10 reasons for app rejections

ที่มา – Apple Developer

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

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

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

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

Privacy Preferences

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

Allow All
Manage Consent Preferences
  • Always Active

Save