# Guideline 2.1 App Store: เข้าใจและแก้ไขเมื่อแอปถูกปฏิเสธ

> Guideline 2.1 App Completeness ครอบคลุมอะไร Apple ทดสอบแอปอย่างไร ตอบ reviewer อย่างไร พร้อมเคสถูกปฏิเสธจริง 3 ครั้งจากแอปของผม

หน้าต้นฉบับ: [Guideline 2.1 App Store: เข้าใจและแก้ไขเมื่อแอปถูกปฏิเสธ](https://devoria.fr/th/blog/guideline-2-1-app-store-rejection-fix)
ผู้เขียน: [Mehdi Azizi](https://devoria.fr/th/mehdi-azizi)
เผยแพร่: 2026-09-23
แก้ไขเนื้อหาล่าสุด: 2026-10-09


Guideline 2.1 คือกฎที่ทำให้แอปถูกปฏิเสธมากที่สุด Apple เขียนไว้เองใน[หน้า App Review](https://developer.apple.com/distribute/app-review/) ว่าโดยเฉลี่ยแล้ว ปัญหาที่ยังไม่ได้รับการแก้ไขมากกว่า 40% เกี่ยวกับข้อ 2.1 ซึ่งครอบคลุมเรื่องแอปแครช เนื้อหาชั่วคราว และข้อมูลที่ไม่ครบถ้วน

บทความนี้พูดถึงกฎข้อนี้ข้อเดียว: มันครอบคลุมอะไร มีสองรูปแบบอย่างไร reviewer ทดสอบแอปของคุณอย่างไร และควรตอบเขาอย่างไร พร้อมเคสถูกปฏิเสธสามครั้งที่ผมเจอกับแอปของตัวเอง ถ้าอยากเห็นภาพรวมของเหตุผลการปฏิเสธทั้งหมด แนะนำให้อ่าน[ทำไม Apple ถึงปฏิเสธแอป](https://devoria.fr/th/blog/apple-app-rejection-reasons-real-cases)แทน

## Guideline 2.1 App Completeness คืออะไร?

Guideline 2.1 กำหนดให้แอปที่ส่งให้ Apple ต้องเป็นเวอร์ชันสุดท้ายที่สมบูรณ์: ไม่แครช ไม่มีลิงก์เสีย ไม่มีข้อความชั่วคราว มีบัญชีเดโมถ้าแอปต้องล็อกอิน และ in-app purchase ต้องมองเห็นได้และใช้งานได้จริง ถ้า reviewer ไม่สามารถใช้งานแอปของคุณได้จนสุดทาง ก็จะโดนปฏิเสธด้วยข้อ 2.1

ข้อความทางการอยู่ใน [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#2.1) หมวด 2 "Performance" แบ่งเป็นสองข้อย่อย

**2.1(a)** กำหนดให้ทุกการส่งต้องเป็นเวอร์ชันสุดท้าย มี metadata ครบ และ URL ใช้งานได้ ข้อความชั่วคราว เว็บไซต์ว่างเปล่า และเนื้อหาชั่วคราวทุกอย่างต้องถูกเอาออกก่อนส่ง แอปต้องผ่านการทดสอบบนอุปกรณ์จริงเรื่องบั๊กและความเสถียร ถ้าแอปต้องล็อกอิน คุณต้องให้บัญชีเดโมและเปิดเซิร์ฟเวอร์ทิ้งไว้ โหมดเดโมในตัวแอปใช้แทนบัญชีนี้ได้ แต่ต้องได้รับอนุญาตจาก Apple ก่อน และต้องแสดงทุกฟังก์ชันของแอป ประโยคที่สรุปทุกอย่างคือ: "We will reject incomplete app bundles and binaries that crash"

**2.1(b)** เกี่ยวกับ in-app purchase: ต้องครบถ้วน อัปเดต reviewer มองเห็นได้ และใช้งานได้ ถ้ารายการซื้อที่ตั้งค่าไว้ใน App Store Connect หาไม่เจอในแอป คุณต้องอธิบายเหตุผลไว้ใน review notes

## สิ่งที่ Guideline 2.1 ครอบคลุมในทางปฏิบัติ

ในทางปฏิบัติ การปฏิเสธด้วยข้อ 2.1 จะเกิดจากเหตุผลข้อใดข้อหนึ่งต่อไปนี้:

- **แอปแครช** ตอนเปิดแอป หลังผู้ใช้ปฏิเสธ permission หรือตอนไม่มีเน็ต แค่ครั้งเดียวก็พอแล้ว
- **ลิงก์เสีย** นโยบายความเป็นส่วนตัว ข้อกำหนดการใช้งาน หน้าซัพพอร์ต: ทุก URL ที่คุณระบุไว้จะถูกเปิดดู
- **ฟังก์ชันที่เข้าถึงไม่ได้** ปุ่มที่กดแล้วไม่ไปไหน หน้าจอบังคับที่ผ่านไม่ได้ onboarding ที่ไม่มีทางออก แบบที่ร้ายที่สุดคือแบบที่มองไม่เห็นบนมือถือของคุณเอง
- **บัญชีเดโมไม่มีหรือหมดอายุ** reviewer ติดอยู่ที่หน้าล็อกอิน หรือบัญชีที่ให้ไว้ใช้ไม่ได้แล้ว หรือเซิร์ฟเวอร์ปิดอยู่
- **เนื้อหาเติมช่องว่าง** Lorem ipsum, "เร็วๆ นี้", หน้าจอว่าง, ข้อมูลทดสอบที่มองเห็นได้
- **หา in-app purchase ไม่เจอ** subscription มีอยู่ใน App Store Connect แต่ reviewer หาหน้าที่ขายไม่เจอ หรือการซื้อล้มเหลวใน sandbox ข้อผิดพลาดที่พบบ่อยที่สุดของหน้าจ่ายเงินอยู่ใน[paywall iOS: 7 ข้อผิดพลาดของมือใหม่](https://devoria.fr/th/blog/ios-paywall-beginner-mistakes-sales)

## 2.1 Information Needed กับ 2.1(a) ต่างกันอย่างไร?

ข้อความจาก Apple ไม่ได้มีหัวข้อเหมือนกันทั้งหมด และความต่างนี้ทำให้วิธีตอบของคุณเปลี่ยนไป

**"Guideline 2.1 - Information Needed"** หมายความว่า reviewer รีวิวไม่จบและมีคำถามถึงคุณ ขาดข้อมูลล็อกอิน คำอธิบาย หรือวิธีเข้าถึงฟังก์ชันบางอย่าง ยังไม่ใช่การยืนยันว่าเจอบั๊ก แต่เป็นคำขอ บางครั้งแค่ตอบให้ชัดเจนใน App Store Connect ก็พอ แต่ถ้าคำถามนั้นเผยให้เห็นว่ามีจุดติดจริงในแอป คุณต้องส่ง build ใหม่

**"Guideline 2.1(a) - Performance - App Completeness"** หมายความว่า reviewer เจอปัญหาจริง: แอปแครช บั๊ก หรือหน้าจอไม่ตอบสนอง ข้อความมักจะระบุอุปกรณ์ที่ใช้ และมักแนบภาพหน้าจอมาด้วย กรณีนี้คุณต้องแก้ไข ส่ง build ใหม่ แล้วค่อยตอบกลับ

## Apple ทดสอบแอปของคุณอย่างไร

ลองคิดแบบ reviewer ดู มีสามจุดที่สำคัญ

**เขาทดสอบบนอุปกรณ์ที่คุณอาจไม่มี** ข้อความปฏิเสธมักระบุรุ่นมาด้วย กฎข้อ 2.4.1 ระบุว่าแอป iPhone ควรรันบน iPad ได้เท่าที่ทำได้ และแอปที่ออกแบบมาสำหรับ iPhone จะแสดงผลบน iPad ในโหมด compatibility ในหน้าต่างขนาด iPhone การปฏิเสธข้อ 2.1 ครั้งล่าสุดของผมมาจาก iPad Air: ถ้าคุณทดสอบแค่บน iPhone ของตัวเอง คุณจะไม่เห็นสิ่งที่ reviewer เห็น

**เขาเริ่มจากการเปิดแอปครั้งแรก** แอปใหม่ ไม่มี cache ไม่มี session ไม่มีอัปเดตที่ดาวน์โหลดมา

**เครือข่ายต้องใช้งานได้บน IPv6 อย่างเดียว** กฎข้อ 2.5.5 ซึ่งอยู่ใกล้กับ guideline 2.5.4 เรื่อง background modes กำหนดให้แอปทำงานได้เต็มที่บนเครือข่าย IPv6 อย่างเดียว และ[หน้าซัพพอร์ตของ Apple เรื่อง IPv6](https://developer.apple.com/support/ipv6/) ก็ระบุว่าเป็นข้อบังคับสำหรับทุกแอปที่ส่งตั้งแต่วันที่ 1 มิถุนายน 2016 ความเสี่ยงมาจากที่อยู่ IPv4 ที่เขียนฝังไว้ในโค้ด Apple แนะนำให้ทดสอบบนเครือข่าย IPv6 อย่างเดียว โดยปิดข้อมูลมือถือ

ถ้าอยากจำลองสภาพเหล่านี้ก่อนส่ง วิธีที่ง่ายที่สุดคือใช้ TestFlight บนหลายอุปกรณ์ ดูได้ที่ [TestFlight: ทดสอบแอป iPhone ของคุณ](https://devoria.fr/th/blog/testflight-test-iphone-app-before-app-store)

## การถูกปฏิเสธสามครั้งของผม และสาเหตุที่แท้จริง

การถูกปฏิเสธสามครั้งล่าสุดกับแอปของผมเอง พร้อมสาเหตุที่แท้จริง

### Solys: เดโมมินิเกมที่ไม่มีทางชนะได้บน iPad

Solys คือแอปนาฬิกาปลุกที่มีมินิเกมของผม วันที่ 18 สิงหาคม 2026 build หนึ่งถูกปฏิเสธด้วย "2.1 Information Needed": Apple ขอวิธีผ่านภารกิจในเกม reviewer ทดสอบบน iPad Air โดยใช้แอป iPhone ในโหมด compatibility

สาเหตุจริงอยู่ที่เดโมมินิเกมใน onboarding ความสูงของสิ่งกีดขวางถูกเขียนเป็นค่า point ตายตัว พอเจอความสูงของการ์ดที่มีบน iPad ในโหมด compatibility ช่องทางผ่านเลยแคบกว่าตัวละคร: เดโมนี้ไม่มีทางชนะได้ และปุ่ม "ดำเนินการต่อ" จะเปิดใช้งานเฉพาะตอนชนะเท่านั้น ไม่มีทางออก: reviewer จึงไม่ได้เห็นแอปเลย

**วิธีแก้**: ใช้ขนาดที่เป็นสัดส่วนกับขนาดจริงที่วัดได้ของการ์ด และเพิ่มลิงก์ "ข้ามเดโม" ที่จะโผล่มาหลังแพ้

**บทเรียน**: ทุกขั้นตอนที่ต้องอาศัยฝีมือต้องมีทางออกแบบไม่มีเงื่อนไข และทุกหน้าจอบังคับต้องทดสอบบนหน้าจอเล็กที่สุดที่รองรับ และบน iPad ในโหมด compatibility ด้วย

### Nolera: การแก้ไขที่ reviewer มองไม่เห็น

วันที่ 17 กันยายน 2026 Nolera ถูกปฏิเสธหลังรีวิวบน iPad Air ข้อความรวมข้อ 2.1(a) กับประเด็นอื่นๆ ไว้ด้วยกัน การแก้ปัญหาที่ถูกแจ้งมาถูกส่งผ่านการอัปเดตจากระยะไกล (OTA) โดยไม่มี build ใหม่

ปัญหาคือ: ตอนเปิดแอปครั้งแรกสุด reviewer จะเห็นโค้ดที่ฝังอยู่ใน build ไม่ใช่อัปเดตที่ดาวน์โหลดมาทีหลัง สำหรับเขาแล้ว การแก้ไขนั้นไม่มีอยู่จริง

**บทเรียน**: การแก้ไขที่ตั้งใจให้ reviewer เห็นต้องอยู่ใน binary ที่ส่งให้ Apple

### Clic: สาเหตุไม่ได้อยู่ในแอป

วันที่ 16 กันยายน 2026 Clic ถูกปฏิเสธ ตัวแอปเองอัปเดตแล้ว สาเหตุจริงอยู่ที่อื่น: นโยบายความเป็นส่วนตัวที่เผยแพร่ออนไลน์ยังไม่อัปเดตเรื่องผู้ให้บริการ AI ที่ใช้ การปฏิเสธครั้งนี้เข้าข่ายเรื่องความเป็นส่วนตัวมากกว่าข้อ 2.1 แต่สะท้อนเรื่องเดียวกัน: สาเหตุที่แท้จริงไม่ได้เป็นอย่างที่ข้อความทำให้เข้าใจเสมอไป

**บทเรียน**: ตรวจสอบสิ่งที่อยู่ออนไลน์ ไม่ใช่สิ่งที่อยู่ใน repo ของคุณ เปิดทุก URL ที่ระบุไว้ในวันที่ส่ง

## ควรตอบอะไรใน Resolution Center

หลังถูกปฏิเสธ การส่งของคุณจะเปลี่ยนสถานะเป็น ["Unresolved Issues"](https://devoria.fr/th/blog/waiting-for-review-app-store-connect-statuses) และการสนทนากับ Apple จะเกิดขึ้นในส่วน App Review ของแอป ซึ่งยังเรียกกันว่า Resolution Center ขั้นตอนทางการในการ[ตอบกลับ App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/) อนุญาตให้ส่งข้อความได้สูงสุด 4,000 ตัวอักษร พร้อมไฟล์แนบหนึ่งไฟล์

เขียนเป็นภาษาอังกฤษ แบบเรียบๆ reviewer ต้องการข้อมูลสามอย่าง: อะไรที่ทำให้ติด อะไรที่เปลี่ยนไป และตรวจสอบได้อย่างไร นี่คือเทมเพลตที่ผมใช้ (เปลี่ยนหมายเลข build และรายละเอียดการแก้ไขเป็นของคุณ):

```text
Hello,

Thank you for your review.

Issue: the onboarding game demo could not be completed on iPad
(iPhone app running in compatibility mode), so the user could
not continue.

Fix in build 1.0.3 (42):
- The game layout now scales to the measured screen size.
- A "Skip demo" link appears after a failed attempt, so the
  onboarding can always be completed.

How to verify: launch the app, start the onboarding demo,
lose once, then tap "Skip demo".

A screen recording is attached.

Best regards,
```

กฎบางข้อ:

- **ตอบคำถามที่ถูกถาม** ถ้าเป็น "Information Needed" ให้เริ่มด้วยคำตอบตรงๆ ไม่ใช่เริ่มด้วยบริบท
- **ระบุ build และบอกเส้นทาง**ไปยังหน้าจอที่แก้ไขแล้ว ในสามหรือสี่ขั้นตอน
- **แนบหลักฐาน** วิดีโอสั้นๆ บนอุปกรณ์ที่ใกล้เคียงกับของ reviewer ช่วยลดการส่งกลับไปกลับมาอีกรอบ
- **ไม่ต้องแก้ต่าง** การอุทธรณ์ต่อ App Review Board มีอยู่จริง แต่ถ้าการปฏิเสธข้อ 2.1 นั้นสมเหตุสมผล มันจะแค่ทำให้รอนานขึ้น รายละเอียดเรื่องระยะเวลาอยู่ใน[ระยะเวลาการรีวิว App Store](https://devoria.fr/th/blog/app-store-review-time-how-long)

ถ้าอ่านแล้วยังไม่เข้าใจเหตุผล ขั้นตอนทั้งหมดอยู่ในหน้า[แอปถูก Apple ปฏิเสธ](https://devoria.fr/th/expertise/app-rejected-by-apple)

## Review notes และบัญชีเดโม

ส่วน App Review Information ของเวอร์ชันคุณใน App Store Connect คือเกราะป้องกันข้อ 2.1 ที่ดีที่สุด ตาม[ข้อมูลอ้างอิงทางการของช่องเหล่านี้](https://developer.apple.com/help/app-store-connect/reference/app-review-information/) ประกอบด้วย:

- **Sign-in required**: ชื่อผู้ใช้และรหัสผ่านของบัญชีเดโม บัญชีนี้ต้องไม่หมดอายุ ถ้าแอปของคุณใช้การล็อกอินผ่านบริการภายนอก ให้ใส่ข้อมูลล็อกอินของบริการนั้น
- **Notes**: สูงสุด 4,000 ไบต์ เป็นภาษาอะไรก็ได้ ทุกอย่างที่ช่วยในการทดสอบ
- **Contact**: ชื่อ อีเมล และเบอร์โทรในรูปแบบสากล

สิ่งที่ผมใส่ใน notes ทุกครั้ง:

1. **เส้นทางไปยัง in-app purchase แต่ละรายการ** ตามที่กฎข้อ 2.1(b) กำหนด
2. **ฟังก์ชันที่ไม่ชัดเจน**: ท่าทางการใช้งาน permission หรือเนื้อหาที่ผูกกับเวลา
3. **สถานะของบัญชีเดโม**: สมัครสมาชิกแล้วหรือยัง มีข้อมูลกรอกไว้แล้วหรือว่างเปล่า
4. **ข้อจำกัดที่ทราบ**: สำหรับฮาร์ดแวร์หรือสภาพแวดล้อมที่จำลองได้ยาก Apple ขอให้เตรียมวิดีโอไว้

และกฎอีกข้อที่อยู่นอกฟอร์ม: **เปิดเซิร์ฟเวอร์ทิ้งไว้ตลอดการรีวิว** เซิร์ฟเวอร์ทดสอบที่ปิดอยู่ ก็คือบัญชีเดโมที่ใช้ไม่ได้ ซึ่งแปลว่าโดนปฏิเสธข้อ 2.1

## เช็กลิสต์ข้อ 2.1 ก่อนส่งแอป

เช็กลิสต์ที่ผมใช้ก่อนส่งทุกครั้ง สร้างจากการถูกปฏิเสธของผมเอง:

- ติดตั้งแอปใหม่ตั้งแต่ต้นบน iPhone ที่เล็กที่สุดที่รองรับ ใหญ่ที่สุด และ iPad ในโหมด compatibility
- ใช้งาน onboarding จนจบ โดยตั้งใจทำพลาดในทุกขั้นตอนที่ต้องอาศัยฝีมือ
- ทุกหน้าจอบังคับมีทางออกแบบไม่มีเงื่อนไข
- ไม่มีการแก้ไขสำหรับการรีวิวที่ส่งผ่านการอัปเดตจากระยะไกลเพียงอย่างเดียว
- เปิดแอปในโหมดเครื่องบิน แล้วตามด้วยบนเครือข่าย IPv6 อย่างเดียว
- เปิดทุก URL ที่ระบุไว้ในวันเดียวกัน: ความเป็นส่วนตัว ข้อกำหนด ซัพพอร์ต
- ไม่มีข้อความชั่วคราว หน้าจอว่าง หรือข้อมูลทดสอบที่มองเห็นได้
- ทดสอบบัญชีเดโมในวันที่ส่ง ไม่มีวันหมดอายุ เซิร์ฟเวอร์เปิดอยู่
- in-app purchase ทุกรายการหาเจอจากในแอปและทดสอบใน sandbox แล้ว รวมถึงการ restore
- Review notes ระบุว่า in-app purchase และฟังก์ชันที่ไม่ชัดเจนอยู่ตรงไหน

ถ้านี่คือการเผยแพร่แอปครั้งแรกของคุณ ทุกขั้นตอนก่อนหน้านี้อยู่ใน[เผยแพร่แอปบน App Store](https://devoria.fr/th/expertise/publish-app-on-app-store)

## ส่งแอปไปพร้อมกับคนที่เคยโดนปฏิเสธแบบนี้มาแล้ว

[Apple Review Kit](https://devoria.fr/th/kits/review-apple) รวบรวมเช็กลิสต์ก่อนส่งของผม เทมเพลต notes สำหรับผู้ทดสอบ และ skills ของ Claude Code ที่ช่วยตรวจโปรเจกต์ของคุณก่อนส่ง

เพิ่งโดนปฏิเสธข้อ 2.1 มาใช่ไหม? ชุดนี้ยังช่วยให้คุณหากฎที่ถูกอ้างถึง สิ่งที่กฎนั้นต้องการ และตัวอย่างการแก้ไขกับการตอบกลับได้ด้วย ถ้าอยากให้เราดูเรื่องของคุณด้วยกันตอนนี้เลย [จองเวลาหนึ่งชั่วโมงกับผม](https://devoria.fr/th/coaching) ผ่านวิดีโอคอล

ไม่มีใครรับประกันได้ว่า Apple จะอนุมัติแอปของคุณ สิ่งที่ผมทำได้คือช่วยให้คุณหลีกเลี่ยงการปฏิเสธข้อ 2.1 ที่ผมเคยเสียรอบการรีวิวไปแล้ว

ยังไม่ได้ส่งแอปใช่ไหม? [การวินิจฉัยฟรี](https://devoria.fr/th/diagnostic)จะส่งเช็กลิสต์กันการปฏิเสธของ Apple ของผมให้คุณ รวมถึงข้อ 2.1 และบอกว่ายังเหลืออะไรต้องทำก่อนส่ง ถ้าคุณยังอยู่ในช่วงสร้างแอป หน้าแรกจะแสดงวิธี[สร้างแอปมือถือ](https://devoria.fr/th)โดยคิดถึงการรีวิวตั้งแต่เริ่มต้น

## คำถามที่พบบ่อย

### "Guideline 2.1 - Information Needed" หมายความว่าอะไร?

reviewer รีวิวไม่จบและมีคำถามถึงคุณ: ข้อมูลล็อกอิน คำอธิบาย หรือวิธีเข้าถึงฟังก์ชันบางอย่าง ตอบให้ชัดเจนใน App Store Connect ถ้าคำถามเผยให้เห็นจุดติดจริงในแอป เหมือนกรณี Solys ให้แก้ไขแล้วส่ง build ใหม่

### ต้องส่ง build ใหม่หลังถูกปฏิเสธข้อ 2.1 ไหม?

ถ้าเป็นแอปแครช บั๊ก หรือหน้าจอที่ติด ต้องส่ง: การแก้ไขต้องอยู่ใน binary การอัปเดตจากระยะไกลไม่พอ เพราะ reviewer เห็นโค้ดที่ฝังอยู่ตอนเปิดแอปครั้งแรก ถ้าแค่ขาดข้อมูล การตอบกลับอย่างเดียวอาจเพียงพอ

### แอปของผมต้องล็อกอิน ต้องให้อะไรกับ reviewer?

บัญชีเดโมที่ไม่หมดอายุ กรอกไว้ในส่วน App Review Information และเซิร์ฟเวอร์ที่เปิดอยู่ตลอดการรีวิว โหมดเดโมในตัวแอปใช้แทนบัญชีนี้ได้เฉพาะเมื่อได้รับอนุญาตจาก Apple ก่อน และต้องแสดงทุกฟังก์ชัน

### การปฏิเสธข้อ 2.1 มาจากสิ่งอื่นนอกจากตัวแอปได้ไหม?

ได้ URL เสียในหน้าแอป บัญชีเดโมหมดอายุ เซิร์ฟเวอร์ปิด หรือ in-app purchase ตั้งค่าผิดก็เพียงพอแล้ว และบางครั้ง เหมือนกรณี Clic สาเหตุจริงอยู่ออนไลน์ ไม่ได้อยู่ในโค้ด: ตรวจสอบทุกอย่างที่ reviewer เปิดดูได้


## โปรเจกต์ของคุณ

[Apple Review Kit](https://devoria.fr/th/kits/review-apple): เช็กลิสต์รีวิว App Store ที่ผมใช้ การปฏิเสธจาก Apple ที่ผมแก้แล้ว บันทึกถึงผู้ตรวจ และสอง skills ของ Claude Code ที่ตรวจแอปคุณ 29 €

[iOS Kit](https://devoria.fr/th/kits/ios): สร้างแอป iPhone ด้วย Claude Code: Starter Code ของแอปผม skills ที่ตรวจงาน และคิต Apple Review, Screenshots และ ASO 129,99 €
